xref: /openbsd-src/usr.sbin/ospfctl/parser.h (revision 213432118bd827963ed7a3911e52f4007b431711)
1*21343211Sremi /*	$OpenBSD: parser.h,v 1.14 2019/05/16 21:07:33 remi Exp $ */
2b49634deSclaudio 
3b49634deSclaudio /*
42090e587Snorby  * Copyright (c) 2004 Esben Norby <norby@openbsd.org>
5b49634deSclaudio  * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
6b49634deSclaudio  *
7b49634deSclaudio  * Permission to use, copy, modify, and distribute this software for any
8b49634deSclaudio  * purpose with or without fee is hereby granted, provided that the above
9b49634deSclaudio  * copyright notice and this permission notice appear in all copies.
10b49634deSclaudio  *
11b49634deSclaudio  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12b49634deSclaudio  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13b49634deSclaudio  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14b49634deSclaudio  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15b49634deSclaudio  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16b49634deSclaudio  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17b49634deSclaudio  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18b49634deSclaudio  */
19b49634deSclaudio 
20b49634deSclaudio #ifndef _PARSER_H_
21b49634deSclaudio #define _PARSER_H_
22b49634deSclaudio 
23b49634deSclaudio #include <sys/types.h>
24b49634deSclaudio #include <net/if.h>
25b49634deSclaudio #include <netinet/in.h>
26b49634deSclaudio 
27b49634deSclaudio enum actions {
28b49634deSclaudio 	NONE,
2973a141beSclaudio 	FIB,
3073a141beSclaudio 	FIB_COUPLE,
3173a141beSclaudio 	FIB_DECOUPLE,
32119f0f1dSdlg 	FIB_RELOAD,
33c3319070Sclaudio 	LOG_VERBOSE,
34c3319070Sclaudio 	LOG_BRIEF,
35b49634deSclaudio 	SHOW,
3659df52c7Snorby 	SHOW_SUM,
37b49634deSclaudio 	SHOW_IFACE,
3812bb42a0Snorby 	SHOW_IFACE_DTAIL,
39b49634deSclaudio 	SHOW_NBR,
40b49634deSclaudio 	SHOW_NBR_DTAIL,
41b49634deSclaudio 	SHOW_DB,
42b49634deSclaudio 	SHOW_DBBYAREA,
4332286112Snorby 	SHOW_DBEXT,
4432286112Snorby 	SHOW_DBNET,
4532286112Snorby 	SHOW_DBRTR,
4632286112Snorby 	SHOW_DBSELF,
4732286112Snorby 	SHOW_DBSUM,
4832286112Snorby 	SHOW_DBASBR,
4997494e25Sclaudio 	SHOW_DBOPAQ,
5037355230Snorby 	SHOW_RIB,
5137355230Snorby 	SHOW_RIB_DTAIL,
52c47b7f65Sclaudio 	SHOW_FIB,
53c47b7f65Sclaudio 	SHOW_FIB_IFACE,
54b49634deSclaudio 	RELOAD
55b49634deSclaudio };
56b49634deSclaudio 
57b49634deSclaudio struct parse_result {
58b49634deSclaudio 	struct in_addr	addr;
59b49634deSclaudio 	char		ifname[IF_NAMESIZE];
60b49634deSclaudio 	int		flags;
61b49634deSclaudio 	enum actions	action;
62b49634deSclaudio 	u_int8_t	prefixlen;
63b49634deSclaudio };
64b49634deSclaudio 
65b49634deSclaudio struct parse_result	*parse(int, char *[]);
66b49634deSclaudio int			 parse_addr(const char *, struct in_addr *);
67*21343211Sremi int			 parse_area(const char *, struct in_addr *);
68b49634deSclaudio int			 parse_prefix(const char *, struct in_addr *,
69b49634deSclaudio 			     u_int8_t *);
70b49634deSclaudio 
71b49634deSclaudio #endif	/* _PARSER_H_ */
72