@@ -63,7 +63,9 @@ extern int rtnl_route_nh_str2flags(const char *);
6363extern struct rtnl_nh_encap * rtnl_nh_encap_alloc (void );
6464extern void rtnl_nh_encap_free (struct rtnl_nh_encap * nh_encap );
6565extern struct rtnl_nh_encap * rtnl_nh_encap_clone (struct rtnl_nh_encap * src );
66+ extern int rtnl_nh_encap_get_type (struct rtnl_nh_encap * nh_encap );
6667
68+ /* MPLS encap */
6769extern int rtnl_nh_encap_mpls (struct rtnl_nh_encap * nh_encap ,
6870 struct nl_addr * dst , uint8_t ttl );
6971struct nl_addr * rtnl_nh_get_encap_mpls_dst (struct rtnl_nh_encap * );
@@ -73,6 +75,53 @@ extern int rtnl_route_nh_encap_mpls(struct rtnl_nexthop *nh,
7375 struct nl_addr * addr , uint8_t ttl );
7476extern struct nl_addr * rtnl_route_nh_get_encap_mpls_dst (struct rtnl_nexthop * );
7577extern uint8_t rtnl_route_nh_get_encap_mpls_ttl (struct rtnl_nexthop * );
78+
79+ /* IPv6 encap */
80+ extern int rtnl_nh_encap_ip6 (struct rtnl_nh_encap * nh_encap ,
81+ struct nl_addr * dst );
82+ struct nl_addr * rtnl_nh_get_encap_ip6_dst (struct rtnl_nh_encap * );
83+ extern int rtnl_nh_set_encap_ip6_id (struct rtnl_nh_encap * , uint64_t );
84+ extern uint64_t rtnl_nh_get_encap_ip6_id (struct rtnl_nh_encap * );
85+ extern int rtnl_nh_set_encap_ip6_hoplimit (struct rtnl_nh_encap * , uint8_t );
86+ extern int rtnl_nh_get_encap_ip6_hoplimit (struct rtnl_nh_encap * );
87+ extern int rtnl_nh_set_encap_ip6_tc (struct rtnl_nh_encap * , uint8_t );
88+ extern int rtnl_nh_get_encap_ip6_tc (struct rtnl_nh_encap * );
89+ extern int rtnl_nh_set_encap_ip6_src (struct rtnl_nh_encap * , struct nl_addr * );
90+ struct nl_addr * rtnl_nh_get_encap_ip6_src (struct rtnl_nh_encap * );
91+ extern int rtnl_nh_set_encap_ip6_flags (struct rtnl_nh_encap * , uint16_t );
92+ extern int rtnl_nh_get_encap_ip6_flags (struct rtnl_nh_encap * );
93+
94+ /* ILA encap */
95+ extern int rtnl_nh_encap_ila (struct rtnl_nh_encap * nh_encap , uint64_t locator );
96+ extern int rtnl_nh_get_encap_ila_locator (struct rtnl_nh_encap * nh_encap ,
97+ uint64_t * locator );
98+ extern int rtnl_nh_set_encap_ila_csum_mode (struct rtnl_nh_encap * nh_encap ,
99+ uint8_t csum_mode );
100+ extern int rtnl_nh_clear_encap_ila_csum_mode (struct rtnl_nh_encap * nh_encap );
101+ extern int rtnl_nh_get_encap_ila_csum_mode (struct rtnl_nh_encap * nh_encap );
102+ extern int rtnl_nh_set_encap_ila_ident_type (struct rtnl_nh_encap * nh_encap ,
103+ uint8_t ident_type );
104+ extern int rtnl_nh_clear_encap_ila_ident_type (struct rtnl_nh_encap * nh_encap );
105+ extern int rtnl_nh_get_encap_ila_ident_type (struct rtnl_nh_encap * nh_encap );
106+ extern int rtnl_nh_set_encap_ila_hook_type (struct rtnl_nh_encap * nh_encap ,
107+ uint8_t hook_type );
108+ extern int rtnl_nh_clear_encap_ila_hook_type (struct rtnl_nh_encap * nh_encap );
109+ extern int rtnl_nh_get_encap_ila_hook_type (struct rtnl_nh_encap * nh_encap );
110+
111+ /* IPv4 encap */
112+ extern int rtnl_nh_encap_ip (struct rtnl_nh_encap * nh_encap ,
113+ struct nl_addr * dst );
114+ struct nl_addr * rtnl_nh_get_encap_ip_dst (struct rtnl_nh_encap * );
115+ extern int rtnl_nh_set_encap_ip_src (struct rtnl_nh_encap * , struct nl_addr * );
116+ struct nl_addr * rtnl_nh_get_encap_ip_src (struct rtnl_nh_encap * );
117+ extern int rtnl_nh_set_encap_ip_ttl (struct rtnl_nh_encap * , uint8_t );
118+ extern int rtnl_nh_get_encap_ip_ttl (struct rtnl_nh_encap * );
119+ extern int rtnl_nh_set_encap_ip_tos (struct rtnl_nh_encap * , uint8_t );
120+ extern int rtnl_nh_get_encap_ip_tos (struct rtnl_nh_encap * );
121+ extern int rtnl_nh_set_encap_ip_id (struct rtnl_nh_encap * , uint64_t );
122+ extern uint64_t rtnl_nh_get_encap_ip_id (struct rtnl_nh_encap * );
123+ extern int rtnl_nh_set_encap_ip_flags (struct rtnl_nh_encap * , uint16_t );
124+ extern int rtnl_nh_get_encap_ip_flags (struct rtnl_nh_encap * );
76125#ifdef __cplusplus
77126}
78127#endif
0 commit comments