]> git.proxmox.com Git - mirror_iproute2.git/blame - ip/ip_common.h
ip: add support for multicast rules
[mirror_iproute2.git] / ip / ip_common.h
CommitLineData
ae665a52
SH
1extern int print_linkinfo(const struct sockaddr_nl *who,
2 struct nlmsghdr *n,
6dc9f016
SH
3 void *arg);
4extern int print_addrinfo(const struct sockaddr_nl *who,
ae665a52 5 struct nlmsghdr *n,
6dc9f016 6 void *arg);
5ef82157
SH
7extern int print_addrlabel(const struct sockaddr_nl *who,
8 struct nlmsghdr *n, void *arg);
6dc9f016 9extern int print_neigh(const struct sockaddr_nl *who,
50772dc5 10 struct nlmsghdr *n, void *arg);
09954dc6
SH
11extern int print_ntable(const struct sockaddr_nl *who,
12 struct nlmsghdr *n, void *arg);
aba5acdf
SH
13extern int ipaddr_list(int argc, char **argv);
14extern int ipaddr_list_link(int argc, char **argv);
15extern int iproute_monitor(int argc, char **argv);
16extern void iplink_usage(void) __attribute__((noreturn));
17extern void iproute_reset_filter(void);
18extern void ipaddr_reset_filter(int);
19extern void ipneigh_reset_filter(void);
09954dc6 20extern void ipntable_reset_filter(void);
ae665a52 21extern int print_route(const struct sockaddr_nl *who,
50772dc5 22 struct nlmsghdr *n, void *arg);
1cb54e58 23extern int print_prefix(const struct sockaddr_nl *who,
24 struct nlmsghdr *n, void *arg);
98bde989
TG
25extern int print_rule(const struct sockaddr_nl *who,
26 struct nlmsghdr *n, void *arg);
aba5acdf 27extern int do_ipaddr(int argc, char **argv);
4759758c 28extern int do_ipaddrlabel(int argc, char **argv);
aba5acdf
SH
29extern int do_iproute(int argc, char **argv);
30extern int do_iprule(int argc, char **argv);
31extern int do_ipneigh(int argc, char **argv);
09954dc6 32extern int do_ipntable(int argc, char **argv);
aba5acdf 33extern int do_iptunnel(int argc, char **argv);
288384f2 34extern int do_ip6tunnel(int argc, char **argv);
580fbd88 35extern int do_iptuntap(int argc, char **argv);
aba5acdf
SH
36extern int do_iplink(int argc, char **argv);
37extern int do_ipmonitor(int argc, char **argv);
38extern int do_multiaddr(int argc, char **argv);
39extern int do_multiroute(int argc, char **argv);
b6c8e808 40extern int do_multirule(int argc, char **argv);
c7699875 41extern int do_xfrm(int argc, char **argv);
351efcde 42
34e95647
PM
43static inline int rtm_get_table(struct rtmsg *r, struct rtattr **tb)
44{
45 __u32 table = r->rtm_table;
46 if (tb[RTA_TABLE])
47 table = *(__u32*) RTA_DATA(tb[RTA_TABLE]);
48 return table;
49}
50
351efcde 51extern struct rtnl_handle rth;
141bb606 52
1d934839
PM
53struct link_util
54{
55 struct link_util *next;
56 const char *id;
57 int maxattr;
58 int (*parse_opt)(struct link_util *, int, char **,
59 struct nlmsghdr *);
60 void (*print_opt)(struct link_util *, FILE *,
61 struct rtattr *[]);
62 void (*print_xstats)(struct link_util *, FILE *,
63 struct rtattr *);
64};
65
66struct link_util *get_link_kind(const char *kind);
67
141bb606
MN
68#ifndef INFINITY_LIFE_TIME
69#define INFINITY_LIFE_TIME 0xFFFFFFFFU
70#endif