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