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