@@ -14,6 +14,7 @@ extern "C" {
1414#endif
1515
1616struct rtnl_nexthop ;
17+ struct rtnl_nh_encap ;
1718
1819enum {
1920 NH_DUMP_FROM_ONELINE = -2 ,
@@ -22,53 +23,56 @@ enum {
2223 /* > 0 reserved for nexthop index */
2324};
2425
25- extern struct rtnl_nexthop * rtnl_route_nh_alloc (void );
26- extern struct rtnl_nexthop * rtnl_route_nh_clone (struct rtnl_nexthop * );
27- extern void rtnl_route_nh_free (struct rtnl_nexthop * );
26+ extern struct rtnl_nexthop * rtnl_route_nh_alloc (void );
27+ extern struct rtnl_nexthop * rtnl_route_nh_clone (struct rtnl_nexthop * );
28+ extern void rtnl_route_nh_free (struct rtnl_nexthop * );
2829
29- extern int rtnl_route_nh_compare (struct rtnl_nexthop * ,
30- struct rtnl_nexthop * ,
31- uint32_t , int );
30+ extern int rtnl_route_nh_compare (struct rtnl_nexthop * , struct rtnl_nexthop * ,
31+ uint32_t , int );
3232
33- extern int rtnl_route_nh_identical (struct rtnl_nexthop * ,
34- struct rtnl_nexthop * );
33+ extern int rtnl_route_nh_identical (struct rtnl_nexthop * ,
34+ struct rtnl_nexthop * );
3535
36- extern void rtnl_route_nh_dump (struct rtnl_nexthop * ,
37- struct nl_dump_params * );
36+ extern void rtnl_route_nh_dump (struct rtnl_nexthop * , struct nl_dump_params * );
3837
39- extern void rtnl_route_nh_set_weight (struct rtnl_nexthop * , uint8_t );
40- extern uint8_t rtnl_route_nh_get_weight (struct rtnl_nexthop * );
41- extern void rtnl_route_nh_set_ifindex (struct rtnl_nexthop * , int );
42- extern int rtnl_route_nh_get_ifindex (struct rtnl_nexthop * );
43- extern void rtnl_route_nh_set_gateway (struct rtnl_nexthop * ,
44- struct nl_addr * );
45- extern struct nl_addr * rtnl_route_nh_get_gateway (struct rtnl_nexthop * );
46- extern void rtnl_route_nh_set_flags (struct rtnl_nexthop * ,
47- unsigned int );
48- extern void rtnl_route_nh_unset_flags (struct rtnl_nexthop * ,
49- unsigned int );
50- extern unsigned int rtnl_route_nh_get_flags (struct rtnl_nexthop * );
51- extern void rtnl_route_nh_set_realms (struct rtnl_nexthop * ,
52- uint32_t );
53- extern uint32_t rtnl_route_nh_get_realms (struct rtnl_nexthop * );
38+ extern void rtnl_route_nh_set_weight (struct rtnl_nexthop * , uint8_t );
39+ extern uint8_t rtnl_route_nh_get_weight (struct rtnl_nexthop * );
40+ extern void rtnl_route_nh_set_ifindex (struct rtnl_nexthop * , int );
41+ extern int rtnl_route_nh_get_ifindex (struct rtnl_nexthop * );
42+ extern void rtnl_route_nh_set_gateway (struct rtnl_nexthop * , struct nl_addr * );
43+ extern struct nl_addr * rtnl_route_nh_get_gateway (struct rtnl_nexthop * );
44+ extern void rtnl_route_nh_set_flags (struct rtnl_nexthop * , unsigned int );
45+ extern void rtnl_route_nh_unset_flags (struct rtnl_nexthop * , unsigned int );
46+ extern unsigned int rtnl_route_nh_get_flags (struct rtnl_nexthop * );
47+ extern void rtnl_route_nh_set_realms (struct rtnl_nexthop * , uint32_t );
48+ extern uint32_t rtnl_route_nh_get_realms (struct rtnl_nexthop * );
5449
55- extern int rtnl_route_nh_set_newdst (struct rtnl_nexthop * ,
56- struct nl_addr * );
57- extern struct nl_addr * rtnl_route_nh_get_newdst (struct rtnl_nexthop * );
58- extern int rtnl_route_nh_set_via (struct rtnl_nexthop * ,
59- struct nl_addr * );
60- extern struct nl_addr * rtnl_route_nh_get_via (struct rtnl_nexthop * );
61- extern char * rtnl_route_nh_flags2str (int , char * , size_t );
62- extern int rtnl_route_nh_str2flags (const char * );
50+ extern int rtnl_route_nh_set_newdst (struct rtnl_nexthop * , struct nl_addr * );
51+ extern struct nl_addr * rtnl_route_nh_get_newdst (struct rtnl_nexthop * );
52+ extern int rtnl_route_nh_set_via (struct rtnl_nexthop * , struct nl_addr * );
53+ extern struct nl_addr * rtnl_route_nh_get_via (struct rtnl_nexthop * );
54+ extern int rtnl_route_nh_set_encap (struct rtnl_nexthop * ,
55+ struct rtnl_nh_encap * );
56+ extern struct rtnl_nh_encap * rtnl_route_nh_get_encap (struct rtnl_nexthop * );
57+ extern char * rtnl_route_nh_flags2str (int , char * , size_t );
58+ extern int rtnl_route_nh_str2flags (const char * );
6359
6460/*
6561 * nexthop encapsulations
6662 */
67- extern int rtnl_route_nh_encap_mpls (struct rtnl_nexthop * nh ,
68- struct nl_addr * addr ,
69- uint8_t ttl );
70- extern struct nl_addr * rtnl_route_nh_get_encap_mpls_dst (struct rtnl_nexthop * );
71- extern uint8_t rtnl_route_nh_get_encap_mpls_ttl (struct rtnl_nexthop * );
63+ extern struct rtnl_nh_encap * rtnl_nh_encap_alloc (void );
64+ extern void rtnl_nh_encap_free (struct rtnl_nh_encap * nh_encap );
65+ extern struct rtnl_nh_encap * rtnl_nh_encap_clone (struct rtnl_nh_encap * src );
66+
67+ extern int rtnl_nh_encap_mpls (struct rtnl_nh_encap * nh_encap ,
68+ struct nl_addr * dst , uint8_t ttl );
69+ struct nl_addr * rtnl_nh_get_encap_mpls_dst (struct rtnl_nh_encap * );
70+ extern int rtnl_nh_get_encap_mpls_ttl (struct rtnl_nh_encap * );
71+
72+ extern int rtnl_route_nh_encap_mpls (struct rtnl_nexthop * nh ,
73+ struct nl_addr * addr , uint8_t ttl );
74+ extern struct nl_addr * rtnl_route_nh_get_encap_mpls_dst (struct rtnl_nexthop * );
75+ extern uint8_t rtnl_route_nh_get_encap_mpls_ttl (struct rtnl_nexthop * );
7276#ifdef __cplusplus
7377}
7478#endif
0 commit comments