ip_common.h revision 4759758c05b3bda53b743a1c3238f1479bb61b43
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);
74759758c05b3bda53b743a1c3238f1479bb61b43YOSHIFUJI Hideaki / 吉藤英明extern int print_addrlabelinfo(const struct sockaddr_nl *who,
84759758c05b3bda53b743a1c3238f1479bb61b43YOSHIFUJI Hideaki / 吉藤英明			       struct nlmsghdr *n,
94759758c05b3bda53b743a1c3238f1479bb61b43YOSHIFUJI Hideaki / 吉藤英明			       void *arg);
106dc9f016347441fbf94cf851c054b0f45ba32c1cosdl.net!shemmingerextern int print_neigh(const struct sockaddr_nl *who,
1150772dc51ac02239958e1ebcdb21277fcdf133a7osdl.net!shemminger		       struct nlmsghdr *n, void *arg);
1209954dc61adc3051cbb2127e2bfcf692502c8306shemmingerextern int print_ntable(const struct sockaddr_nl *who,
1309954dc61adc3051cbb2127e2bfcf692502c8306shemminger			struct nlmsghdr *n, void *arg);
14aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int ipaddr_list(int argc, char **argv);
15aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int ipaddr_list_link(int argc, char **argv);
16aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int iproute_monitor(int argc, char **argv);
17aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern void iplink_usage(void) __attribute__((noreturn));
18aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern void iproute_reset_filter(void);
19aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern void ipaddr_reset_filter(int);
20aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern void ipneigh_reset_filter(void);
2109954dc61adc3051cbb2127e2bfcf692502c8306shemmingerextern void ipntable_reset_filter(void);
22ae665a522bd46bea44c5ea84c89c8b1731954170Stephen Hemmingerextern int print_route(const struct sockaddr_nl *who,
2350772dc51ac02239958e1ebcdb21277fcdf133a7osdl.net!shemminger		       struct nlmsghdr *n, void *arg);
241cb54e58069fb413bd20738754b4e49f0403da0cnet[shemminger]!shemmingerextern int print_prefix(const struct sockaddr_nl *who,
251cb54e58069fb413bd20738754b4e49f0403da0cnet[shemminger]!shemminger			struct nlmsghdr *n, void *arg);
2698bde989db679153ee7a5f6425037b5a002eb95dThomas Grafextern int print_rule(const struct sockaddr_nl *who,
2798bde989db679153ee7a5f6425037b5a002eb95dThomas Graf		      struct nlmsghdr *n, void *arg);
28aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int do_ipaddr(int argc, char **argv);
294759758c05b3bda53b743a1c3238f1479bb61b43YOSHIFUJI Hideaki / 吉藤英明extern int do_ipaddrlabel(int argc, char **argv);
30aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int do_iproute(int argc, char **argv);
31aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int do_iprule(int argc, char **argv);
32aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int do_ipneigh(int argc, char **argv);
3309954dc61adc3051cbb2127e2bfcf692502c8306shemmingerextern int do_ipntable(int argc, char **argv);
34aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerextern int do_iptunnel(int argc, char **argv);
35288384f22ffafd2d7d888ee45d8dfcf26d3f2b1cMasahide NAKAMURAextern int do_ip6tunnel(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);
40c7699875bee00fbcd057fc62c30d6560b044e007net[shemminger]!shemmingerextern int do_xfrm(int argc, char **argv);
41351efcde4e62967362a10b29f3b701cfecd7cdfcshemminger
4234e9564753075c756f96597e7aa57f969a403aafPatrick McHardystatic inline int rtm_get_table(struct rtmsg *r, struct rtattr **tb)
4334e9564753075c756f96597e7aa57f969a403aafPatrick McHardy{
4434e9564753075c756f96597e7aa57f969a403aafPatrick McHardy	__u32 table = r->rtm_table;
4534e9564753075c756f96597e7aa57f969a403aafPatrick McHardy	if (tb[RTA_TABLE])
4634e9564753075c756f96597e7aa57f969a403aafPatrick McHardy		table = *(__u32*) RTA_DATA(tb[RTA_TABLE]);
4734e9564753075c756f96597e7aa57f969a403aafPatrick McHardy	return table;
4834e9564753075c756f96597e7aa57f969a403aafPatrick McHardy}
4934e9564753075c756f96597e7aa57f969a403aafPatrick McHardy
50351efcde4e62967362a10b29f3b701cfecd7cdfcshemmingerextern struct rtnl_handle rth;
51141bb60640efb17844b9b9c87d62f679c3036238Masahide NAKAMURA
521d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardystruct link_util
531d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy{
541d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy	struct link_util	*next;
551d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy	const char		*id;
561d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy	int			maxattr;
571d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy	int			(*parse_opt)(struct link_util *, int, char **,
581d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy					     struct nlmsghdr *);
591d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy	void			(*print_opt)(struct link_util *, FILE *,
601d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy					     struct rtattr *[]);
611d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy	void			(*print_xstats)(struct link_util *, FILE *,
621d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy					     struct rtattr *);
631d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy};
641d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy
651d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardystruct link_util *get_link_kind(const char *kind);
661d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy
67141bb60640efb17844b9b9c87d62f679c3036238Masahide NAKAMURA#ifndef	INFINITY_LIFE_TIME
68141bb60640efb17844b9b9c87d62f679c3036238Masahide NAKAMURA#define     INFINITY_LIFE_TIME      0xFFFFFFFFU
69141bb60640efb17844b9b9c87d62f679c3036238Masahide NAKAMURA#endif
70