xref: /openbsd-src/usr.sbin/ospf6ctl/parser.h (revision dd3b9a80516716eb7d3616a923f2076c1f1589de)
1*dd3b9a80Ssthen /*	$OpenBSD: parser.h,v 1.10 2023/06/21 09:47:03 sthen Exp $ */
28e709cbdSnorby 
38e709cbdSnorby /*
48e709cbdSnorby  * Copyright (c) 2004 Esben Norby <norby@openbsd.org>
58e709cbdSnorby  * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
68e709cbdSnorby  *
78e709cbdSnorby  * Permission to use, copy, modify, and distribute this software for any
88e709cbdSnorby  * purpose with or without fee is hereby granted, provided that the above
98e709cbdSnorby  * copyright notice and this permission notice appear in all copies.
108e709cbdSnorby  *
118e709cbdSnorby  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
128e709cbdSnorby  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
138e709cbdSnorby  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
148e709cbdSnorby  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
158e709cbdSnorby  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
168e709cbdSnorby  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
178e709cbdSnorby  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
188e709cbdSnorby  */
198e709cbdSnorby 
208e709cbdSnorby #ifndef _PARSER_H_
218e709cbdSnorby #define _PARSER_H_
228e709cbdSnorby 
238e709cbdSnorby #include <sys/types.h>
248e709cbdSnorby #include <net/if.h>
258e709cbdSnorby #include <netinet/in.h>
268e709cbdSnorby 
278e709cbdSnorby enum actions {
288e709cbdSnorby 	NONE,
298e709cbdSnorby 	FIB,
308e709cbdSnorby 	FIB_COUPLE,
318e709cbdSnorby 	FIB_DECOUPLE,
32*dd3b9a80Ssthen 	FIB_RELOAD,
33c3319070Sclaudio 	LOG_VERBOSE,
34c3319070Sclaudio 	LOG_BRIEF,
358e709cbdSnorby 	SHOW,
368e709cbdSnorby 	SHOW_SUM,
378e709cbdSnorby 	SHOW_IFACE,
388e709cbdSnorby 	SHOW_IFACE_DTAIL,
398e709cbdSnorby 	SHOW_NBR,
408e709cbdSnorby 	SHOW_NBR_DTAIL,
418e709cbdSnorby 	SHOW_DB,
428e709cbdSnorby 	SHOW_DBBYAREA,
438e709cbdSnorby 	SHOW_DBEXT,
44aeb06b08Sclaudio 	SHOW_DBLINK,
458e709cbdSnorby 	SHOW_DBNET,
468e709cbdSnorby 	SHOW_DBRTR,
4741bcac6bSstsp 	SHOW_DBINTRA,
488e709cbdSnorby 	SHOW_DBSELF,
498e709cbdSnorby 	SHOW_DBSUM,
508e709cbdSnorby 	SHOW_DBASBR,
518e709cbdSnorby 	SHOW_RIB,
528e709cbdSnorby 	SHOW_RIB_DTAIL,
538e709cbdSnorby 	SHOW_FIB,
548e709cbdSnorby 	RELOAD
558e709cbdSnorby };
568e709cbdSnorby 
578e709cbdSnorby struct parse_result {
580104e403Sclaudio 	struct in6_addr	addr;
5996950f83Sremi 	struct in_addr	area;
608e709cbdSnorby 	char		ifname[IF_NAMESIZE];
618e709cbdSnorby 	int		flags;
628e709cbdSnorby 	enum actions	action;
638e709cbdSnorby 	u_int8_t	prefixlen;
648e709cbdSnorby };
658e709cbdSnorby 
668e709cbdSnorby struct parse_result	*parse(int, char *[]);
670104e403Sclaudio int			 parse_addr(const char *, struct in6_addr *);
6896950f83Sremi int			 parse_area(const char *, struct in_addr *);
690104e403Sclaudio int			 parse_prefix(const char *, struct in6_addr *,
708e709cbdSnorby 			     u_int8_t *);
718e709cbdSnorby 
728e709cbdSnorby #endif	/* _PARSER_H_ */
73