ip_common.h revision 0dc34c7713bb7055378fe5cbc720d63d0db572a1
1ae665a522bd46bea44c5ea84c89c8b1731954170Stephen Hemmingerextern int print_linkinfo(const struct sockaddr_nl *who, 2ae665a522bd46bea44c5ea84c89c8b1731954170Stephen Hemminger struct nlmsghdr *n, 36dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemminger void *arg); 46dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemmingerextern int print_addrinfo(const struct sockaddr_nl *who, 5ae665a522bd46bea44c5ea84c89c8b1731954170Stephen Hemminger struct nlmsghdr *n, 66dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemminger void *arg); 75ef82157002d1ae22b168604f0aec5331dd55defStephen Hemmingerextern int print_addrlabel(const struct sockaddr_nl *who, 85ef82157002d1ae22b168604f0aec5331dd55defStephen Hemminger struct nlmsghdr *n, void *arg); 96dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemmingerextern int print_neigh(const struct sockaddr_nl *who, 1050772dc51ac02239958e1ebcdb21277fcdf133a7osdl.net!shemminger struct nlmsghdr *n, void *arg); 1109954dc61adc3051cbb2127e2bfcf692502c8306shemmingerextern int print_ntable(const struct sockaddr_nl *who, 1209954dc61adc3051cbb2127e2bfcf692502c8306shemminger struct nlmsghdr *n, void *arg); 13aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int ipaddr_list(int argc, char **argv); 14aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int ipaddr_list_link(int argc, char **argv); 15aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int iproute_monitor(int argc, char **argv); 16aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern void iplink_usage(void) __attribute__((noreturn)); 17aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern void iproute_reset_filter(void); 18aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern void ipaddr_reset_filter(int); 19aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern void ipneigh_reset_filter(void); 2009954dc61adc3051cbb2127e2bfcf692502c8306shemmingerextern void ipntable_reset_filter(void); 21ae665a522bd46bea44c5ea84c89c8b1731954170Stephen Hemmingerextern int print_route(const struct sockaddr_nl *who, 2250772dc51ac02239958e1ebcdb21277fcdf133a7osdl.net!shemminger struct nlmsghdr *n, void *arg); 231cb54e58069fb413bd20738754b4e49f0403da0cnet[shemminger]!shemmingerextern int print_prefix(const struct sockaddr_nl *who, 241cb54e58069fb413bd20738754b4e49f0403da0cnet[shemminger]!shemminger struct nlmsghdr *n, void *arg); 2598bde989db679153ee7a5f6425037b5a002eb95dThomas Grafextern int print_rule(const struct sockaddr_nl *who, 2698bde989db679153ee7a5f6425037b5a002eb95dThomas Graf struct nlmsghdr *n, void *arg); 27aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int do_ipaddr(int argc, char **argv); 284759758c05b3bda53b743a1c3238f1479bb61b43YOSHIFUJI Hideaki / 吉藤英明extern int do_ipaddrlabel(int argc, char **argv); 29aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int do_iproute(int argc, char **argv); 30aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int do_iprule(int argc, char **argv); 31aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int do_ipneigh(int argc, char **argv); 3209954dc61adc3051cbb2127e2bfcf692502c8306shemmingerextern int do_ipntable(int argc, char **argv); 33aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int do_iptunnel(int argc, char **argv); 34288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURAextern int do_ip6tunnel(int argc, char **argv); 35580fbd88f75cc9eea0d28a48c025b090eb9419a7David Woodhouseextern int do_iptuntap(int argc, char **argv); 36aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int do_iplink(int argc, char **argv); 37aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int do_ipmonitor(int argc, char **argv); 38aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int do_multiaddr(int argc, char **argv); 39aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int do_multiroute(int argc, char **argv); 40b6c8e808fcea80da8bb97078ff942a0b9001e1c1Patrick McHardyextern int do_multirule(int argc, char **argv); 410dc34c7713bb7055378fe5cbc720d63d0db572a1Eric W. Biedermanextern int do_netns(int argc, char **argv); 42c7699875bee00fbcd057fc62c30d6560b044e007net[shemminger]!shemmingerextern int do_xfrm(int argc, char **argv); 43351efcde4e62967362a10b29f3b701cfecd7cdfcshemminger 4434e9564753075c756f96597e7aa57f969a403aafPatrick McHardystatic inline int rtm_get_table(struct rtmsg *r, struct rtattr **tb) 4534e9564753075c756f96597e7aa57f969a403aafPatrick McHardy{ 4634e9564753075c756f96597e7aa57f969a403aafPatrick McHardy __u32 table = r->rtm_table; 4734e9564753075c756f96597e7aa57f969a403aafPatrick McHardy if (tb[RTA_TABLE]) 4834e9564753075c756f96597e7aa57f969a403aafPatrick McHardy table = *(__u32*) RTA_DATA(tb[RTA_TABLE]); 4934e9564753075c756f96597e7aa57f969a403aafPatrick McHardy return table; 5034e9564753075c756f96597e7aa57f969a403aafPatrick McHardy} 5134e9564753075c756f96597e7aa57f969a403aafPatrick McHardy 52351efcde4e62967362a10b29f3b701cfecd7cdfcshemmingerextern struct rtnl_handle rth; 53141bb60640efb17844b9b9c87d62f679c3036238Masahide NAKAMURA 541d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardystruct link_util 551d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy{ 561d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy struct link_util *next; 571d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy const char *id; 581d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy int maxattr; 591d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy int (*parse_opt)(struct link_util *, int, char **, 601d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy struct nlmsghdr *); 611d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy void (*print_opt)(struct link_util *, FILE *, 621d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy struct rtattr *[]); 631d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy void (*print_xstats)(struct link_util *, FILE *, 641d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy struct rtattr *); 651d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy}; 661d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy 671d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardystruct link_util *get_link_kind(const char *kind); 680dc34c7713bb7055378fe5cbc720d63d0db572a1Eric W. Biedermanint get_netns_fd(const char *name); 691d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy 70141bb60640efb17844b9b9c87d62f679c3036238Masahide NAKAMURA#ifndef INFINITY_LIFE_TIME 71141bb60640efb17844b9b9c87d62f679c3036238Masahide NAKAMURA#define INFINITY_LIFE_TIME 0xFFFFFFFFU 72141bb60640efb17844b9b9c87d62f679c3036238Masahide NAKAMURA#endif 73