xref: /aosp_15_r20/external/libnl/python/netlink/route/capi.i (revision 4dc78e53d49367fa8e61b07018507c90983a077d)
1*4dc78e53SAndroid Build Coastguard Worker %module capi
2*4dc78e53SAndroid Build Coastguard Worker %{
3*4dc78e53SAndroid Build Coastguard Worker #include <netlink/route/rtnl.h>
4*4dc78e53SAndroid Build Coastguard Worker #include <netlink/route/link.h>
5*4dc78e53SAndroid Build Coastguard Worker #include <netlink/route/link/vlan.h>
6*4dc78e53SAndroid Build Coastguard Worker #include <netlink/route/link/macvlan.h>
7*4dc78e53SAndroid Build Coastguard Worker #include <netlink/route/link/vxlan.h>
8*4dc78e53SAndroid Build Coastguard Worker #include <netlink/route/link/bridge.h>
9*4dc78e53SAndroid Build Coastguard Worker #include <netlink/route/link/inet.h>
10*4dc78e53SAndroid Build Coastguard Worker 
11*4dc78e53SAndroid Build Coastguard Worker #include <netlink/route/tc.h>
12*4dc78e53SAndroid Build Coastguard Worker #include <netlink/route/qdisc.h>
13*4dc78e53SAndroid Build Coastguard Worker #include <netlink/route/class.h>
14*4dc78e53SAndroid Build Coastguard Worker #include <netlink/route/classifier.h>
15*4dc78e53SAndroid Build Coastguard Worker 
16*4dc78e53SAndroid Build Coastguard Worker #include <netlink/route/qdisc/htb.h>
17*4dc78e53SAndroid Build Coastguard Worker 
18*4dc78e53SAndroid Build Coastguard Worker #include <netlink/route/addr.h>
19*4dc78e53SAndroid Build Coastguard Worker %}
20*4dc78e53SAndroid Build Coastguard Worker 
21*4dc78e53SAndroid Build Coastguard Worker %include <stdint.i>
22*4dc78e53SAndroid Build Coastguard Worker %include <cstring.i>
23*4dc78e53SAndroid Build Coastguard Worker 
24*4dc78e53SAndroid Build Coastguard Worker %inline %{
link2obj(struct rtnl_link * link)25*4dc78e53SAndroid Build Coastguard Worker         struct nl_object *link2obj(struct rtnl_link *link)
26*4dc78e53SAndroid Build Coastguard Worker         {
27*4dc78e53SAndroid Build Coastguard Worker                 return OBJ_CAST(link);
28*4dc78e53SAndroid Build Coastguard Worker         }
29*4dc78e53SAndroid Build Coastguard Worker 
obj2link(struct nl_object * obj)30*4dc78e53SAndroid Build Coastguard Worker         struct rtnl_link *obj2link(struct nl_object *obj)
31*4dc78e53SAndroid Build Coastguard Worker         {
32*4dc78e53SAndroid Build Coastguard Worker                 return (struct rtnl_link *) obj;
33*4dc78e53SAndroid Build Coastguard Worker         }
34*4dc78e53SAndroid Build Coastguard Worker 
get_from_kernel(struct nl_sock * sk,int ifindex,const char * name)35*4dc78e53SAndroid Build Coastguard Worker         struct rtnl_link *get_from_kernel(struct nl_sock *sk, int ifindex, const char *name)
36*4dc78e53SAndroid Build Coastguard Worker         {
37*4dc78e53SAndroid Build Coastguard Worker                 struct rtnl_link *link;
38*4dc78e53SAndroid Build Coastguard Worker                 if (rtnl_link_get_kernel(sk, ifindex, name, &link) < 0)
39*4dc78e53SAndroid Build Coastguard Worker                         return NULL;
40*4dc78e53SAndroid Build Coastguard Worker                 return link;
41*4dc78e53SAndroid Build Coastguard Worker         }
42*4dc78e53SAndroid Build Coastguard Worker 
inet_get_conf(struct rtnl_link * link,const unsigned int id)43*4dc78e53SAndroid Build Coastguard Worker         uint32_t inet_get_conf(struct rtnl_link *link, const unsigned int id)
44*4dc78e53SAndroid Build Coastguard Worker         {
45*4dc78e53SAndroid Build Coastguard Worker                 uint32_t result;
46*4dc78e53SAndroid Build Coastguard Worker 
47*4dc78e53SAndroid Build Coastguard Worker                 if (rtnl_link_inet_get_conf(link, id, &result) < 0)
48*4dc78e53SAndroid Build Coastguard Worker                         return 0;
49*4dc78e53SAndroid Build Coastguard Worker 
50*4dc78e53SAndroid Build Coastguard Worker                 return result;
51*4dc78e53SAndroid Build Coastguard Worker         }
52*4dc78e53SAndroid Build Coastguard Worker %};
53*4dc78e53SAndroid Build Coastguard Worker 
54*4dc78e53SAndroid Build Coastguard Worker extern struct nl_object *link2obj(struct rtnl_link *);
55*4dc78e53SAndroid Build Coastguard Worker extern struct rtnl_link *obj2link(struct nl_object *);
56*4dc78e53SAndroid Build Coastguard Worker 
57*4dc78e53SAndroid Build Coastguard Worker /* <netlink/route/rtnl.h> */
58*4dc78e53SAndroid Build Coastguard Worker 
59*4dc78e53SAndroid Build Coastguard Worker %cstring_output_maxsize(char *buf, size_t len)
60*4dc78e53SAndroid Build Coastguard Worker extern char *		rtnl_scope2str(int, char *buf, size_t len);
61*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_str2scope(const char *);
62*4dc78e53SAndroid Build Coastguard Worker 
63*4dc78e53SAndroid Build Coastguard Worker /* <netlink/route/link.h> */
64*4dc78e53SAndroid Build Coastguard Worker 
65*4dc78e53SAndroid Build Coastguard Worker extern struct rtnl_link *rtnl_link_alloc(void);
66*4dc78e53SAndroid Build Coastguard Worker 
67*4dc78e53SAndroid Build Coastguard Worker extern struct rtnl_link *rtnl_link_get(struct nl_cache *, int);
68*4dc78e53SAndroid Build Coastguard Worker extern struct rtnl_link *rtnl_link_get_by_name(struct nl_cache *, const char *);
69*4dc78e53SAndroid Build Coastguard Worker 
70*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_build_add_request(struct rtnl_link *, int, struct nl_msg **);
71*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_add(struct nl_sock *, struct rtnl_link *, int);
72*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_build_change_request(struct rtnl_link *, struct rtnl_link *, int, struct nl_msg **);
73*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_change(struct nl_sock *, struct rtnl_link *, struct rtnl_link *, int);
74*4dc78e53SAndroid Build Coastguard Worker 
75*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_build_delete_request(const struct rtnl_link *, struct nl_msg **);
76*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_delete(struct nl_sock *, const struct rtnl_link *);
77*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_build_get_request(int, const char *, struct nl_msg **);
78*4dc78e53SAndroid Build Coastguard Worker 
79*4dc78e53SAndroid Build Coastguard Worker extern char *rtnl_link_stat2str(int, char *, size_t);
80*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_str2stat(const char *);
81*4dc78e53SAndroid Build Coastguard Worker 
82*4dc78e53SAndroid Build Coastguard Worker %cstring_output_maxsize(char *buf, size_t len)
83*4dc78e53SAndroid Build Coastguard Worker extern char *rtnl_link_flags2str(int, char *buf, size_t len);
84*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_str2flags(const char *);
85*4dc78e53SAndroid Build Coastguard Worker 
86*4dc78e53SAndroid Build Coastguard Worker %cstring_output_maxsize(char *buf, size_t len)
87*4dc78e53SAndroid Build Coastguard Worker extern char *rtnl_link_operstate2str(uint8_t, char *buf, size_t len);
88*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_str2operstate(const char *);
89*4dc78e53SAndroid Build Coastguard Worker 
90*4dc78e53SAndroid Build Coastguard Worker %cstring_output_maxsize(char *buf, size_t len)
91*4dc78e53SAndroid Build Coastguard Worker extern char *rtnl_link_mode2str(uint8_t, char *buf, size_t len);
92*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_str2mode(const char *);
93*4dc78e53SAndroid Build Coastguard Worker 
94*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_link_set_qdisc(struct rtnl_link *, const char *);
95*4dc78e53SAndroid Build Coastguard Worker extern char *rtnl_link_get_qdisc(struct rtnl_link *);
96*4dc78e53SAndroid Build Coastguard Worker 
97*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_link_set_name(struct rtnl_link *, const char *);
98*4dc78e53SAndroid Build Coastguard Worker extern char *rtnl_link_get_name(struct rtnl_link *);
99*4dc78e53SAndroid Build Coastguard Worker 
100*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_link_set_flags(struct rtnl_link *, unsigned int);
101*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_link_unset_flags(struct rtnl_link *, unsigned int);
102*4dc78e53SAndroid Build Coastguard Worker extern unsigned int rtnl_link_get_flags(struct rtnl_link *);
103*4dc78e53SAndroid Build Coastguard Worker 
104*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_link_set_mtu(struct rtnl_link *, unsigned int);
105*4dc78e53SAndroid Build Coastguard Worker extern unsigned int rtnl_link_get_mtu(struct rtnl_link *);
106*4dc78e53SAndroid Build Coastguard Worker 
107*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_link_set_txqlen(struct rtnl_link *, unsigned int);
108*4dc78e53SAndroid Build Coastguard Worker extern unsigned int rtnl_link_get_txqlen(struct rtnl_link *);
109*4dc78e53SAndroid Build Coastguard Worker 
110*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_link_set_ifindex(struct rtnl_link *, int);
111*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_get_ifindex(struct rtnl_link *);
112*4dc78e53SAndroid Build Coastguard Worker 
113*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_link_set_family(struct rtnl_link *, int);
114*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_get_family(struct rtnl_link *);
115*4dc78e53SAndroid Build Coastguard Worker 
116*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_link_set_arptype(struct rtnl_link *, unsigned int);
117*4dc78e53SAndroid Build Coastguard Worker extern unsigned int rtnl_link_get_arptype(struct rtnl_link *);
118*4dc78e53SAndroid Build Coastguard Worker 
119*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_link_set_addr(struct rtnl_link *, struct nl_addr *);
120*4dc78e53SAndroid Build Coastguard Worker extern struct nl_addr *rtnl_link_get_addr(struct rtnl_link *);
121*4dc78e53SAndroid Build Coastguard Worker 
122*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_link_set_broadcast(struct rtnl_link *, struct nl_addr *);
123*4dc78e53SAndroid Build Coastguard Worker extern struct nl_addr *rtnl_link_get_broadcast(struct rtnl_link *);
124*4dc78e53SAndroid Build Coastguard Worker 
125*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_link_set_link(struct rtnl_link *, int);
126*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_get_link(struct rtnl_link *);
127*4dc78e53SAndroid Build Coastguard Worker 
128*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_link_set_master(struct rtnl_link *, int);
129*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_get_master(struct rtnl_link *);
130*4dc78e53SAndroid Build Coastguard Worker 
131*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_link_set_operstate(struct rtnl_link *, uint8_t);
132*4dc78e53SAndroid Build Coastguard Worker extern uint8_t rtnl_link_get_operstate(struct rtnl_link *);
133*4dc78e53SAndroid Build Coastguard Worker 
134*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_link_set_linkmode(struct rtnl_link *, uint8_t);
135*4dc78e53SAndroid Build Coastguard Worker extern uint8_t rtnl_link_get_linkmode(struct rtnl_link *);
136*4dc78e53SAndroid Build Coastguard Worker 
137*4dc78e53SAndroid Build Coastguard Worker extern const char *rtnl_link_get_ifalias(struct rtnl_link *);
138*4dc78e53SAndroid Build Coastguard Worker extern void rtnl_link_set_ifalias(struct rtnl_link *, const char *);
139*4dc78e53SAndroid Build Coastguard Worker 
140*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_get_num_vf(struct rtnl_link *, uint32_t *);
141*4dc78e53SAndroid Build Coastguard Worker 
142*4dc78e53SAndroid Build Coastguard Worker extern uint64_t rtnl_link_get_stat(struct rtnl_link *, int);
143*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_set_stat(struct rtnl_link *, const unsigned int, const uint64_t);
144*4dc78e53SAndroid Build Coastguard Worker 
145*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_set_type(struct rtnl_link *, const char *);
146*4dc78e53SAndroid Build Coastguard Worker extern char *rtnl_link_get_type(struct rtnl_link *);
147*4dc78e53SAndroid Build Coastguard Worker 
148*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_enslave(struct nl_sock * sock, struct rtnl_link * master, struct rtnl_link * slave);
149*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_release(struct nl_sock * sock, struct rtnl_link * slave);
150*4dc78e53SAndroid Build Coastguard Worker 
151*4dc78e53SAndroid Build Coastguard Worker /* <netlink/route/link/vlan.h> */
152*4dc78e53SAndroid Build Coastguard Worker 
153*4dc78e53SAndroid Build Coastguard Worker struct vlan_map
154*4dc78e53SAndroid Build Coastguard Worker {
155*4dc78e53SAndroid Build Coastguard Worker 	uint32_t		vm_from;
156*4dc78e53SAndroid Build Coastguard Worker 	uint32_t		vm_to;
157*4dc78e53SAndroid Build Coastguard Worker };
158*4dc78e53SAndroid Build Coastguard Worker 
159*4dc78e53SAndroid Build Coastguard Worker #define VLAN_PRIO_MAX 7
160*4dc78e53SAndroid Build Coastguard Worker 
161*4dc78e53SAndroid Build Coastguard Worker %cstring_output_maxsize(char *buf, size_t len)
162*4dc78e53SAndroid Build Coastguard Worker extern char *rtnl_link_vlan_flags2str(int, char *buf, size_t len);
163*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vlan_str2flags(const char *);
164*4dc78e53SAndroid Build Coastguard Worker 
165*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vlan_set_id(struct rtnl_link *, int);
166*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vlan_get_id(struct rtnl_link *);
167*4dc78e53SAndroid Build Coastguard Worker 
168*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vlan_set_flags(struct rtnl_link *, unsigned int);
169*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vlan_unset_flags(struct rtnl_link *, unsigned int);
170*4dc78e53SAndroid Build Coastguard Worker extern unsigned int rtnl_link_vlan_get_flags(struct rtnl_link *);
171*4dc78e53SAndroid Build Coastguard Worker 
172*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vlan_set_ingress_map(struct rtnl_link *, int, uint32_t);
173*4dc78e53SAndroid Build Coastguard Worker extern uint32_t *rtnl_link_vlan_get_ingress_map(struct rtnl_link *);
174*4dc78e53SAndroid Build Coastguard Worker 
175*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vlan_set_egress_map(struct rtnl_link *, uint32_t, int);
176*4dc78e53SAndroid Build Coastguard Worker extern struct vlan_map *rtnl_link_vlan_get_egress_map(struct rtnl_link *, int *);
177*4dc78e53SAndroid Build Coastguard Worker 
178*4dc78e53SAndroid Build Coastguard Worker /* <netlink/route/link/macvlan.h> */
179*4dc78e53SAndroid Build Coastguard Worker 
180*4dc78e53SAndroid Build Coastguard Worker %cstring_output_maxsize(char *buf, size_t len)
181*4dc78e53SAndroid Build Coastguard Worker extern struct rtnl_link *rtnl_link_macvlan_alloc(void);
182*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_link_is_macvlan(struct rtnl_link *);
183*4dc78e53SAndroid Build Coastguard Worker extern char *		rtnl_link_macvlan_mode2str(int, char *, size_t);
184*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_link_macvlan_str2mode(const char *);
185*4dc78e53SAndroid Build Coastguard Worker extern char *		rtnl_link_macvlan_flags2str(int, char *, size_t);
186*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_link_macvlan_str2flags(const char *);
187*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_link_macvlan_set_mode(struct rtnl_link *, uint32_t);
188*4dc78e53SAndroid Build Coastguard Worker extern uint32_t		rtnl_link_macvlan_get_mode(struct rtnl_link *);
189*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_link_macvlan_set_flags(struct rtnl_link *, uint16_t);
190*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_link_macvlan_unset_flags(struct rtnl_link *, uint16_t);
191*4dc78e53SAndroid Build Coastguard Worker extern uint16_t		rtnl_link_macvlan_get_flags(struct rtnl_link *);
192*4dc78e53SAndroid Build Coastguard Worker 
193*4dc78e53SAndroid Build Coastguard Worker /* <netlink/route/link/vxlan.h> */
194*4dc78e53SAndroid Build Coastguard Worker 
195*4dc78e53SAndroid Build Coastguard Worker #define VXLAN_ID_MAX 16777215
196*4dc78e53SAndroid Build Coastguard Worker 
197*4dc78e53SAndroid Build Coastguard Worker extern struct rtnl_link *rtnl_link_vxlan_alloc(void);
198*4dc78e53SAndroid Build Coastguard Worker 
199*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_is_vxlan(struct rtnl_link *);
200*4dc78e53SAndroid Build Coastguard Worker 
201*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_set_id(struct rtnl_link *, uint32_t);
202*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_get_id(struct rtnl_link *, uint32_t *);
203*4dc78e53SAndroid Build Coastguard Worker 
204*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_set_group(struct rtnl_link *, struct nl_addr *);
205*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_get_group(struct rtnl_link *, struct nl_addr **);
206*4dc78e53SAndroid Build Coastguard Worker 
207*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_set_link(struct rtnl_link *, uint32_t);
208*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_get_link(struct rtnl_link *, uint32_t *);
209*4dc78e53SAndroid Build Coastguard Worker 
210*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_set_local(struct rtnl_link *, struct nl_addr *);
211*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_get_local(struct rtnl_link *, struct nl_addr **);
212*4dc78e53SAndroid Build Coastguard Worker 
213*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_set_ttl(struct rtnl_link *, uint8_t);
214*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_get_ttl(struct rtnl_link *);
215*4dc78e53SAndroid Build Coastguard Worker 
216*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_set_tos(struct rtnl_link *, uint8_t);
217*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_get_tos(struct rtnl_link *);
218*4dc78e53SAndroid Build Coastguard Worker 
219*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_set_learning(struct rtnl_link *, uint8_t);
220*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_get_learning(struct rtnl_link *);
221*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_enable_learning(struct rtnl_link *);
222*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_disable_learning(struct rtnl_link *);
223*4dc78e53SAndroid Build Coastguard Worker 
224*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_set_ageing(struct rtnl_link *, uint32_t);
225*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_get_ageing(struct rtnl_link *, uint32_t *);
226*4dc78e53SAndroid Build Coastguard Worker 
227*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_set_limit(struct rtnl_link *, uint32_t);
228*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_get_limit(struct rtnl_link *, uint32_t *);
229*4dc78e53SAndroid Build Coastguard Worker 
230*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_set_port_range(struct rtnl_link *,
231*4dc78e53SAndroid Build Coastguard Worker 										  struct ifla_vxlan_port_range *);
232*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_get_port_range(struct rtnl_link *,
233*4dc78e53SAndroid Build Coastguard Worker 										  struct ifla_vxlan_port_range *);
234*4dc78e53SAndroid Build Coastguard Worker 
235*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_set_proxy(struct rtnl_link *, uint8_t);
236*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_get_proxy(struct rtnl_link *);
237*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_enable_proxy(struct rtnl_link *);
238*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_disable_proxy(struct rtnl_link *);
239*4dc78e53SAndroid Build Coastguard Worker 
240*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_set_rsc(struct rtnl_link *, uint8_t);
241*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_get_rsc(struct rtnl_link *);
242*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_enable_rsc(struct rtnl_link *);
243*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_disable_rsc(struct rtnl_link *);
244*4dc78e53SAndroid Build Coastguard Worker 
245*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_set_l2miss(struct rtnl_link *, uint8_t);
246*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_get_l2miss(struct rtnl_link *);
247*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_enable_l2miss(struct rtnl_link *);
248*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_disable_l2miss(struct rtnl_link *);
249*4dc78e53SAndroid Build Coastguard Worker 
250*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_set_l3miss(struct rtnl_link *, uint8_t);
251*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_get_l3miss(struct rtnl_link *);
252*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_enable_l3miss(struct rtnl_link *);
253*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_vxlan_disable_l3miss(struct rtnl_link *);
254*4dc78e53SAndroid Build Coastguard Worker 
255*4dc78e53SAndroid Build Coastguard Worker /* <netlink/route/link/bridge.h> */
256*4dc78e53SAndroid Build Coastguard Worker 
257*4dc78e53SAndroid Build Coastguard Worker enum rtnl_link_bridge_flags {
258*4dc78e53SAndroid Build Coastguard Worker 	RTNL_BRIDGE_HAIRPIN_MODE	= 0x0001,
259*4dc78e53SAndroid Build Coastguard Worker 	RTNL_BRIDGE_BPDU_GUARD		= 0x0002,
260*4dc78e53SAndroid Build Coastguard Worker 	RTNL_BRIDGE_ROOT_BLOCK		= 0x0004,
261*4dc78e53SAndroid Build Coastguard Worker 	RTNL_BRIDGE_FAST_LEAVE		= 0x0008,
262*4dc78e53SAndroid Build Coastguard Worker };
263*4dc78e53SAndroid Build Coastguard Worker 
264*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_link_is_bridge(struct rtnl_link *);
265*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_link_bridge_has_ext_info(struct rtnl_link *);
266*4dc78e53SAndroid Build Coastguard Worker 
267*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_link_bridge_set_port_state(struct rtnl_link *, uint8_t );
268*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_link_bridge_get_port_state(struct rtnl_link *);
269*4dc78e53SAndroid Build Coastguard Worker 
270*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_link_bridge_set_priority(struct rtnl_link *, uint16_t);
271*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_link_bridge_get_priority(struct rtnl_link *);
272*4dc78e53SAndroid Build Coastguard Worker 
273*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_link_bridge_set_cost(struct rtnl_link *, uint32_t);
274*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_link_bridge_get_cost(struct rtnl_link *, uint32_t *);
275*4dc78e53SAndroid Build Coastguard Worker 
276*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_link_bridge_unset_flags(struct rtnl_link *, unsigned int);
277*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_link_bridge_set_flags(struct rtnl_link *, unsigned int);
278*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_link_bridge_get_flags(struct rtnl_link *);
279*4dc78e53SAndroid Build Coastguard Worker 
280*4dc78e53SAndroid Build Coastguard Worker extern char * rtnl_link_bridge_flags2str(int, char *, size_t);
281*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_link_bridge_str2flags(const char *);
282*4dc78e53SAndroid Build Coastguard Worker 
283*4dc78e53SAndroid Build Coastguard Worker /* <netlink/route/link/inet.h> */
284*4dc78e53SAndroid Build Coastguard Worker %cstring_output_maxsize(char *buf, size_t len)
285*4dc78e53SAndroid Build Coastguard Worker extern const char *rtnl_link_inet_devconf2str(int, char *buf, size_t len);
286*4dc78e53SAndroid Build Coastguard Worker extern unsigned int rtnl_link_inet_str2devconf(const char *);
287*4dc78e53SAndroid Build Coastguard Worker 
288*4dc78e53SAndroid Build Coastguard Worker extern int rtnl_link_inet_set_conf(struct rtnl_link *, const unsigned int, uint32_t);
289*4dc78e53SAndroid Build Coastguard Worker 
290*4dc78e53SAndroid Build Coastguard Worker /* <netlink/route/tc.h> */
291*4dc78e53SAndroid Build Coastguard Worker 
292*4dc78e53SAndroid Build Coastguard Worker %inline %{
tc_str2handle(const char * name)293*4dc78e53SAndroid Build Coastguard Worker         uint32_t tc_str2handle(const char *name)
294*4dc78e53SAndroid Build Coastguard Worker         {
295*4dc78e53SAndroid Build Coastguard Worker                 uint32_t result;
296*4dc78e53SAndroid Build Coastguard Worker 
297*4dc78e53SAndroid Build Coastguard Worker                 if (rtnl_tc_str2handle(name, &result) < 0)
298*4dc78e53SAndroid Build Coastguard Worker                         return 0;
299*4dc78e53SAndroid Build Coastguard Worker 
300*4dc78e53SAndroid Build Coastguard Worker                 return result;
301*4dc78e53SAndroid Build Coastguard Worker         }
302*4dc78e53SAndroid Build Coastguard Worker %};
303*4dc78e53SAndroid Build Coastguard Worker 
304*4dc78e53SAndroid Build Coastguard Worker extern void		rtnl_tc_set_ifindex(struct rtnl_tc *, int);
305*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_tc_get_ifindex(struct rtnl_tc *);
306*4dc78e53SAndroid Build Coastguard Worker extern void		rtnl_tc_set_link(struct rtnl_tc *, struct rtnl_link *);
307*4dc78e53SAndroid Build Coastguard Worker extern struct rtnl_link *rtnl_tc_get_link(struct rtnl_tc *);
308*4dc78e53SAndroid Build Coastguard Worker extern void		rtnl_tc_set_mtu(struct rtnl_tc *, uint32_t);
309*4dc78e53SAndroid Build Coastguard Worker extern uint32_t		rtnl_tc_get_mtu(struct rtnl_tc *);
310*4dc78e53SAndroid Build Coastguard Worker extern void		rtnl_tc_set_mpu(struct rtnl_tc *, uint32_t);
311*4dc78e53SAndroid Build Coastguard Worker extern uint32_t		rtnl_tc_get_mpu(struct rtnl_tc *);
312*4dc78e53SAndroid Build Coastguard Worker extern void		rtnl_tc_set_overhead(struct rtnl_tc *, uint32_t);
313*4dc78e53SAndroid Build Coastguard Worker extern uint32_t		rtnl_tc_get_overhead(struct rtnl_tc *);
314*4dc78e53SAndroid Build Coastguard Worker extern void		rtnl_tc_set_linktype(struct rtnl_tc *, uint32_t);
315*4dc78e53SAndroid Build Coastguard Worker extern uint32_t		rtnl_tc_get_linktype(struct rtnl_tc *);
316*4dc78e53SAndroid Build Coastguard Worker extern void		rtnl_tc_set_handle(struct rtnl_tc *, uint32_t);
317*4dc78e53SAndroid Build Coastguard Worker extern uint32_t		rtnl_tc_get_handle(struct rtnl_tc *);
318*4dc78e53SAndroid Build Coastguard Worker extern void		rtnl_tc_set_parent(struct rtnl_tc *, uint32_t);
319*4dc78e53SAndroid Build Coastguard Worker extern uint32_t		rtnl_tc_get_parent(struct rtnl_tc *);
320*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_tc_set_kind(struct rtnl_tc *, const char *);
321*4dc78e53SAndroid Build Coastguard Worker extern char *		rtnl_tc_get_kind(struct rtnl_tc *);
322*4dc78e53SAndroid Build Coastguard Worker extern uint64_t		rtnl_tc_get_stat(struct rtnl_tc *, enum rtnl_tc_stat);
323*4dc78e53SAndroid Build Coastguard Worker 
324*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_tc_calc_txtime(int, int);
325*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_tc_calc_bufsize(int, int);
326*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_tc_calc_cell_log(int);
327*4dc78e53SAndroid Build Coastguard Worker 
328*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_tc_read_classid_file(void);
329*4dc78e53SAndroid Build Coastguard Worker %cstring_output_maxsize(char *buf, size_t len)
330*4dc78e53SAndroid Build Coastguard Worker extern char *		rtnl_tc_handle2str(uint32_t, char *buf, size_t len);
331*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_classid_generate(const char *, uint32_t *, uint32_t);
332*4dc78e53SAndroid Build Coastguard Worker 
333*4dc78e53SAndroid Build Coastguard Worker /* <netlink/route/qdisc.h> */
334*4dc78e53SAndroid Build Coastguard Worker 
335*4dc78e53SAndroid Build Coastguard Worker %inline %{
qdisc2obj(struct rtnl_qdisc * qdisc)336*4dc78e53SAndroid Build Coastguard Worker         struct nl_object *qdisc2obj(struct rtnl_qdisc *qdisc)
337*4dc78e53SAndroid Build Coastguard Worker         {
338*4dc78e53SAndroid Build Coastguard Worker                 return OBJ_CAST(qdisc);
339*4dc78e53SAndroid Build Coastguard Worker         }
340*4dc78e53SAndroid Build Coastguard Worker 
obj2qdisc(struct nl_object * obj)341*4dc78e53SAndroid Build Coastguard Worker         struct rtnl_qdisc *obj2qdisc(struct nl_object *obj)
342*4dc78e53SAndroid Build Coastguard Worker         {
343*4dc78e53SAndroid Build Coastguard Worker                 return (struct rtnl_qdisc *) obj;
344*4dc78e53SAndroid Build Coastguard Worker         }
345*4dc78e53SAndroid Build Coastguard Worker 
class2obj(struct rtnl_class * cl)346*4dc78e53SAndroid Build Coastguard Worker         struct nl_object *class2obj(struct rtnl_class *cl)
347*4dc78e53SAndroid Build Coastguard Worker         {
348*4dc78e53SAndroid Build Coastguard Worker                 return OBJ_CAST(cl);
349*4dc78e53SAndroid Build Coastguard Worker         }
350*4dc78e53SAndroid Build Coastguard Worker 
obj2class(struct nl_object * obj)351*4dc78e53SAndroid Build Coastguard Worker         struct rtnl_class *obj2class(struct nl_object *obj)
352*4dc78e53SAndroid Build Coastguard Worker         {
353*4dc78e53SAndroid Build Coastguard Worker                 return (struct rtnl_class *) obj;
354*4dc78e53SAndroid Build Coastguard Worker         }
355*4dc78e53SAndroid Build Coastguard Worker 
cls2obj(struct rtnl_cls * cls)356*4dc78e53SAndroid Build Coastguard Worker         struct nl_object *cls2obj(struct rtnl_cls *cls)
357*4dc78e53SAndroid Build Coastguard Worker         {
358*4dc78e53SAndroid Build Coastguard Worker                 return OBJ_CAST(cls);
359*4dc78e53SAndroid Build Coastguard Worker         }
360*4dc78e53SAndroid Build Coastguard Worker 
obj2cls(struct nl_object * obj)361*4dc78e53SAndroid Build Coastguard Worker         struct rtnl_cls *obj2cls(struct nl_object *obj)
362*4dc78e53SAndroid Build Coastguard Worker         {
363*4dc78e53SAndroid Build Coastguard Worker                 return (struct rtnl_cls *) obj;
364*4dc78e53SAndroid Build Coastguard Worker         }
365*4dc78e53SAndroid Build Coastguard Worker 
obj2tc(struct nl_object * obj)366*4dc78e53SAndroid Build Coastguard Worker         struct rtnl_tc *obj2tc(struct nl_object *obj)
367*4dc78e53SAndroid Build Coastguard Worker         {
368*4dc78e53SAndroid Build Coastguard Worker                 return TC_CAST(obj);
369*4dc78e53SAndroid Build Coastguard Worker         }
370*4dc78e53SAndroid Build Coastguard Worker %};
371*4dc78e53SAndroid Build Coastguard Worker extern struct rtnl_qdisc *
372*4dc78e53SAndroid Build Coastguard Worker 		rtnl_qdisc_alloc(void);
373*4dc78e53SAndroid Build Coastguard Worker 
374*4dc78e53SAndroid Build Coastguard Worker extern struct rtnl_qdisc *
375*4dc78e53SAndroid Build Coastguard Worker 		rtnl_qdisc_get(struct nl_cache *, int, uint32_t);
376*4dc78e53SAndroid Build Coastguard Worker 
377*4dc78e53SAndroid Build Coastguard Worker extern struct rtnl_qdisc *
378*4dc78e53SAndroid Build Coastguard Worker 		rtnl_qdisc_get_by_parent(struct nl_cache *, int, uint32_t);
379*4dc78e53SAndroid Build Coastguard Worker 
380*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_qdisc_build_add_request(struct rtnl_qdisc *, int,
381*4dc78e53SAndroid Build Coastguard Worker 					     struct nl_msg **);
382*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_qdisc_add(struct nl_sock *, struct rtnl_qdisc *, int);
383*4dc78e53SAndroid Build Coastguard Worker 
384*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_qdisc_build_update_request(struct rtnl_qdisc *,
385*4dc78e53SAndroid Build Coastguard Worker 						struct rtnl_qdisc *,
386*4dc78e53SAndroid Build Coastguard Worker 						int, struct nl_msg **);
387*4dc78e53SAndroid Build Coastguard Worker 
388*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_qdisc_update(struct nl_sock *, struct rtnl_qdisc *,
389*4dc78e53SAndroid Build Coastguard Worker 				  struct rtnl_qdisc *, int);
390*4dc78e53SAndroid Build Coastguard Worker 
391*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_qdisc_build_delete_request(struct rtnl_qdisc *,
392*4dc78e53SAndroid Build Coastguard Worker 						struct nl_msg **);
393*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_qdisc_delete(struct nl_sock *, struct rtnl_qdisc *);
394*4dc78e53SAndroid Build Coastguard Worker 
395*4dc78e53SAndroid Build Coastguard Worker /* <netlink/route/classifier.h> */
396*4dc78e53SAndroid Build Coastguard Worker 
397*4dc78e53SAndroid Build Coastguard Worker extern struct rtnl_cls *rtnl_cls_alloc(void);
398*4dc78e53SAndroid Build Coastguard Worker extern void		rtnl_cls_put(struct rtnl_cls *);
399*4dc78e53SAndroid Build Coastguard Worker 
400*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_cls_add(struct nl_sock *, struct rtnl_cls *, int);
401*4dc78e53SAndroid Build Coastguard Worker 
402*4dc78e53SAndroid Build Coastguard Worker extern int		rtnl_cls_delete(struct nl_sock *, struct rtnl_cls *,
403*4dc78e53SAndroid Build Coastguard Worker 					int);
404*4dc78e53SAndroid Build Coastguard Worker 
405*4dc78e53SAndroid Build Coastguard Worker extern void		rtnl_cls_set_prio(struct rtnl_cls *, uint16_t);
406*4dc78e53SAndroid Build Coastguard Worker extern uint16_t		rtnl_cls_get_prio(struct rtnl_cls *);
407*4dc78e53SAndroid Build Coastguard Worker 
408*4dc78e53SAndroid Build Coastguard Worker extern void		rtnl_cls_set_protocol(struct rtnl_cls *, uint16_t);
409*4dc78e53SAndroid Build Coastguard Worker extern uint16_t		rtnl_cls_get_protocol(struct rtnl_cls *);
410*4dc78e53SAndroid Build Coastguard Worker 
411*4dc78e53SAndroid Build Coastguard Worker /* <netlink/route/qdisc/htb.h> */
412*4dc78e53SAndroid Build Coastguard Worker 
413*4dc78e53SAndroid Build Coastguard Worker extern uint32_t	rtnl_htb_get_rate2quantum(struct rtnl_qdisc *);
414*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_htb_set_rate2quantum(struct rtnl_qdisc *, uint32_t);
415*4dc78e53SAndroid Build Coastguard Worker extern uint32_t	rtnl_htb_get_defcls(struct rtnl_qdisc *);
416*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_htb_set_defcls(struct rtnl_qdisc *, uint32_t);
417*4dc78e53SAndroid Build Coastguard Worker 
418*4dc78e53SAndroid Build Coastguard Worker extern uint32_t	rtnl_htb_get_prio(struct rtnl_class *);
419*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_htb_set_prio(struct rtnl_class *, uint32_t);
420*4dc78e53SAndroid Build Coastguard Worker extern uint32_t	rtnl_htb_get_rate(struct rtnl_class *);
421*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_htb_set_rate(struct rtnl_class *, uint32_t);
422*4dc78e53SAndroid Build Coastguard Worker extern uint32_t	rtnl_htb_get_ceil(struct rtnl_class *);
423*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_htb_set_ceil(struct rtnl_class *, uint32_t);
424*4dc78e53SAndroid Build Coastguard Worker extern uint32_t	rtnl_htb_get_rbuffer(struct rtnl_class *);
425*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_htb_set_rbuffer(struct rtnl_class *, uint32_t);
426*4dc78e53SAndroid Build Coastguard Worker extern uint32_t	rtnl_htb_get_cbuffer(struct rtnl_class *);
427*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_htb_set_cbuffer(struct rtnl_class *, uint32_t);
428*4dc78e53SAndroid Build Coastguard Worker extern uint32_t	rtnl_htb_get_quantum(struct rtnl_class *);
429*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_htb_set_quantum(struct rtnl_class *, uint32_t);
430*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_htb_get_level(struct rtnl_class *);
431*4dc78e53SAndroid Build Coastguard Worker 
432*4dc78e53SAndroid Build Coastguard Worker /* <netlink/route/addr.h> */
433*4dc78e53SAndroid Build Coastguard Worker 
434*4dc78e53SAndroid Build Coastguard Worker %inline %{
addr2obj(struct rtnl_addr * addr)435*4dc78e53SAndroid Build Coastguard Worker         struct nl_object *addr2obj(struct rtnl_addr *addr)
436*4dc78e53SAndroid Build Coastguard Worker         {
437*4dc78e53SAndroid Build Coastguard Worker                 return OBJ_CAST(addr);
438*4dc78e53SAndroid Build Coastguard Worker         }
439*4dc78e53SAndroid Build Coastguard Worker 
obj2addr(struct nl_object * obj)440*4dc78e53SAndroid Build Coastguard Worker         struct rtnl_addr *obj2addr(struct nl_object *obj)
441*4dc78e53SAndroid Build Coastguard Worker         {
442*4dc78e53SAndroid Build Coastguard Worker                 return (struct rtnl_addr *) obj;
443*4dc78e53SAndroid Build Coastguard Worker         }
444*4dc78e53SAndroid Build Coastguard Worker %};
445*4dc78e53SAndroid Build Coastguard Worker 
446*4dc78e53SAndroid Build Coastguard Worker extern struct rtnl_addr *rtnl_addr_alloc(void);
447*4dc78e53SAndroid Build Coastguard Worker 
448*4dc78e53SAndroid Build Coastguard Worker extern struct rtnl_addr *
449*4dc78e53SAndroid Build Coastguard Worker 		rtnl_addr_get(struct nl_cache *, int, struct nl_addr *);
450*4dc78e53SAndroid Build Coastguard Worker 
451*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_addr_build_add_request(struct rtnl_addr *, int,
452*4dc78e53SAndroid Build Coastguard Worker 					    struct nl_msg **);
453*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_addr_add(struct nl_sock *, struct rtnl_addr *, int);
454*4dc78e53SAndroid Build Coastguard Worker 
455*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_addr_build_delete_request(struct rtnl_addr *, int,
456*4dc78e53SAndroid Build Coastguard Worker 					       struct nl_msg **);
457*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_addr_delete(struct nl_sock *,
458*4dc78e53SAndroid Build Coastguard Worker 				 struct rtnl_addr *, int);
459*4dc78e53SAndroid Build Coastguard Worker 
460*4dc78e53SAndroid Build Coastguard Worker %cstring_output_maxsize(char *buf, size_t len)
461*4dc78e53SAndroid Build Coastguard Worker extern char *	rtnl_addr_flags2str(int, char *buf, size_t len);
462*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_addr_str2flags(const char *);
463*4dc78e53SAndroid Build Coastguard Worker 
464*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_addr_set_label(struct rtnl_addr *, const char *);
465*4dc78e53SAndroid Build Coastguard Worker extern char *	rtnl_addr_get_label(struct rtnl_addr *);
466*4dc78e53SAndroid Build Coastguard Worker 
467*4dc78e53SAndroid Build Coastguard Worker extern void	rtnl_addr_set_ifindex(struct rtnl_addr *, int);
468*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_addr_get_ifindex(struct rtnl_addr *);
469*4dc78e53SAndroid Build Coastguard Worker 
470*4dc78e53SAndroid Build Coastguard Worker extern void	rtnl_addr_set_link(struct rtnl_addr *, struct rtnl_link *);
471*4dc78e53SAndroid Build Coastguard Worker extern struct rtnl_link *
472*4dc78e53SAndroid Build Coastguard Worker 		rtnl_addr_get_link(struct rtnl_addr *);
473*4dc78e53SAndroid Build Coastguard Worker extern void	rtnl_addr_set_family(struct rtnl_addr *, int);
474*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_addr_get_family(struct rtnl_addr *);
475*4dc78e53SAndroid Build Coastguard Worker 
476*4dc78e53SAndroid Build Coastguard Worker extern void	rtnl_addr_set_prefixlen(struct rtnl_addr *, int);
477*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_addr_get_prefixlen(struct rtnl_addr *);
478*4dc78e53SAndroid Build Coastguard Worker 
479*4dc78e53SAndroid Build Coastguard Worker extern void	rtnl_addr_set_scope(struct rtnl_addr *, int);
480*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_addr_get_scope(struct rtnl_addr *);
481*4dc78e53SAndroid Build Coastguard Worker 
482*4dc78e53SAndroid Build Coastguard Worker extern void	rtnl_addr_set_flags(struct rtnl_addr *, unsigned int);
483*4dc78e53SAndroid Build Coastguard Worker extern void	rtnl_addr_unset_flags(struct rtnl_addr *, unsigned int);
484*4dc78e53SAndroid Build Coastguard Worker extern unsigned int rtnl_addr_get_flags(struct rtnl_addr *);
485*4dc78e53SAndroid Build Coastguard Worker 
486*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_addr_set_local(struct rtnl_addr *,
487*4dc78e53SAndroid Build Coastguard Worker 					    struct nl_addr *);
488*4dc78e53SAndroid Build Coastguard Worker extern struct nl_addr *rtnl_addr_get_local(struct rtnl_addr *);
489*4dc78e53SAndroid Build Coastguard Worker 
490*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_addr_set_peer(struct rtnl_addr *, struct nl_addr *);
491*4dc78e53SAndroid Build Coastguard Worker extern struct nl_addr *rtnl_addr_get_peer(struct rtnl_addr *);
492*4dc78e53SAndroid Build Coastguard Worker 
493*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_addr_set_broadcast(struct rtnl_addr *, struct nl_addr *);
494*4dc78e53SAndroid Build Coastguard Worker extern struct nl_addr *rtnl_addr_get_broadcast(struct rtnl_addr *);
495*4dc78e53SAndroid Build Coastguard Worker 
496*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_addr_set_multicast(struct rtnl_addr *, struct nl_addr *);
497*4dc78e53SAndroid Build Coastguard Worker extern struct nl_addr *rtnl_addr_get_multicast(struct rtnl_addr *);
498*4dc78e53SAndroid Build Coastguard Worker 
499*4dc78e53SAndroid Build Coastguard Worker extern int	rtnl_addr_set_anycast(struct rtnl_addr *, struct nl_addr *);
500*4dc78e53SAndroid Build Coastguard Worker extern struct nl_addr *rtnl_addr_get_anycast(struct rtnl_addr *);
501*4dc78e53SAndroid Build Coastguard Worker 
502*4dc78e53SAndroid Build Coastguard Worker extern uint32_t rtnl_addr_get_valid_lifetime(struct rtnl_addr *);
503*4dc78e53SAndroid Build Coastguard Worker extern void	rtnl_addr_set_valid_lifetime(struct rtnl_addr *, uint32_t);
504*4dc78e53SAndroid Build Coastguard Worker extern uint32_t rtnl_addr_get_preferred_lifetime(struct rtnl_addr *);
505*4dc78e53SAndroid Build Coastguard Worker extern void	rtnl_addr_set_preferred_lifetime(struct rtnl_addr *, uint32_t);
506*4dc78e53SAndroid Build Coastguard Worker extern uint32_t rtnl_addr_get_create_time(struct rtnl_addr *);
507*4dc78e53SAndroid Build Coastguard Worker extern uint32_t rtnl_addr_get_last_update_time(struct rtnl_addr *);
508