|
21 | 21 | #include <sys/socket.h> |
22 | 22 | #include <linux/netlink.h> |
23 | 23 | #include <linux/rtnetlink.h> |
| 24 | +#include <linux/can/netlink.h> |
24 | 25 | #include <linux/in6.h> |
25 | 26 | #include <linux/veth.h> |
26 | 27 | #include <linux/if_bridge.h> |
@@ -303,49 +304,48 @@ static const char* const nl_union_link_info_data_table[] = { |
303 | 304 | [NL_UNION_LINK_INFO_DATA_VTI6_TUNNEL] = "vti6", |
304 | 305 | [NL_UNION_LINK_INFO_DATA_IP6TNL_TUNNEL] = "ip6tnl", |
305 | 306 | [NL_UNION_LINK_INFO_DATA_VRF] = "vrf", |
| 307 | + [NL_UNION_LINK_INFO_DATA_VCAN] = "vcan", |
306 | 308 | }; |
307 | 309 |
|
308 | 310 | DEFINE_STRING_TABLE_LOOKUP(nl_union_link_info_data, NLUnionLinkInfoData); |
309 | 311 |
|
310 | 312 | static const NLTypeSystem rtnl_link_info_data_type_systems[] = { |
311 | | - [NL_UNION_LINK_INFO_DATA_BOND] = { .count = ELEMENTSOF(rtnl_link_info_data_bond_types), |
312 | | - .types = rtnl_link_info_data_bond_types }, |
313 | | - [NL_UNION_LINK_INFO_DATA_BRIDGE] = { .count = ELEMENTSOF(rtnl_link_info_data_bridge_types), |
314 | | - .types = rtnl_link_info_data_bridge_types }, |
315 | | - [NL_UNION_LINK_INFO_DATA_VLAN] = { .count = ELEMENTSOF(rtnl_link_info_data_vlan_types), |
316 | | - .types = rtnl_link_info_data_vlan_types }, |
317 | | - [NL_UNION_LINK_INFO_DATA_VETH] = { .count = ELEMENTSOF(rtnl_link_info_data_veth_types), |
318 | | - .types = rtnl_link_info_data_veth_types }, |
319 | | - [NL_UNION_LINK_INFO_DATA_MACVLAN] = { .count = ELEMENTSOF(rtnl_link_info_data_macvlan_types), |
320 | | - .types = rtnl_link_info_data_macvlan_types }, |
321 | | - [NL_UNION_LINK_INFO_DATA_MACVTAP] = { .count = ELEMENTSOF(rtnl_link_info_data_macvlan_types), |
322 | | - .types = rtnl_link_info_data_macvlan_types }, |
323 | | - [NL_UNION_LINK_INFO_DATA_IPVLAN] = { .count = ELEMENTSOF(rtnl_link_info_data_ipvlan_types), |
324 | | - .types = rtnl_link_info_data_ipvlan_types }, |
325 | | - [NL_UNION_LINK_INFO_DATA_VXLAN] = { .count = ELEMENTSOF(rtnl_link_info_data_vxlan_types), |
326 | | - .types = rtnl_link_info_data_vxlan_types }, |
327 | | - [NL_UNION_LINK_INFO_DATA_IPIP_TUNNEL] = { .count = ELEMENTSOF(rtnl_link_info_data_iptun_types), |
328 | | - .types = rtnl_link_info_data_iptun_types }, |
329 | | - [NL_UNION_LINK_INFO_DATA_IPGRE_TUNNEL] = { .count = ELEMENTSOF(rtnl_link_info_data_ipgre_types), |
330 | | - .types = rtnl_link_info_data_ipgre_types }, |
| 313 | + [NL_UNION_LINK_INFO_DATA_BOND] = { .count = ELEMENTSOF(rtnl_link_info_data_bond_types), |
| 314 | + .types = rtnl_link_info_data_bond_types }, |
| 315 | + [NL_UNION_LINK_INFO_DATA_BRIDGE] = { .count = ELEMENTSOF(rtnl_link_info_data_bridge_types), |
| 316 | + .types = rtnl_link_info_data_bridge_types }, |
| 317 | + [NL_UNION_LINK_INFO_DATA_VLAN] = { .count = ELEMENTSOF(rtnl_link_info_data_vlan_types), |
| 318 | + .types = rtnl_link_info_data_vlan_types }, |
| 319 | + [NL_UNION_LINK_INFO_DATA_VETH] = { .count = ELEMENTSOF(rtnl_link_info_data_veth_types), |
| 320 | + .types = rtnl_link_info_data_veth_types }, |
| 321 | + [NL_UNION_LINK_INFO_DATA_MACVLAN] = { .count = ELEMENTSOF(rtnl_link_info_data_macvlan_types), |
| 322 | + .types = rtnl_link_info_data_macvlan_types }, |
| 323 | + [NL_UNION_LINK_INFO_DATA_MACVTAP] = { .count = ELEMENTSOF(rtnl_link_info_data_macvlan_types), |
| 324 | + .types = rtnl_link_info_data_macvlan_types }, |
| 325 | + [NL_UNION_LINK_INFO_DATA_IPVLAN] = { .count = ELEMENTSOF(rtnl_link_info_data_ipvlan_types), |
| 326 | + .types = rtnl_link_info_data_ipvlan_types }, |
| 327 | + [NL_UNION_LINK_INFO_DATA_VXLAN] = { .count = ELEMENTSOF(rtnl_link_info_data_vxlan_types), |
| 328 | + .types = rtnl_link_info_data_vxlan_types }, |
| 329 | + [NL_UNION_LINK_INFO_DATA_IPIP_TUNNEL] = { .count = ELEMENTSOF(rtnl_link_info_data_iptun_types), |
| 330 | + .types = rtnl_link_info_data_iptun_types }, |
| 331 | + [NL_UNION_LINK_INFO_DATA_IPGRE_TUNNEL] = { .count = ELEMENTSOF(rtnl_link_info_data_ipgre_types), |
| 332 | + .types = rtnl_link_info_data_ipgre_types }, |
331 | 333 | [NL_UNION_LINK_INFO_DATA_IPGRETAP_TUNNEL] = { .count = ELEMENTSOF(rtnl_link_info_data_ipgre_types), |
332 | | - .types = rtnl_link_info_data_ipgre_types }, |
333 | | - [NL_UNION_LINK_INFO_DATA_IP6GRE_TUNNEL] = { .count = ELEMENTSOF(rtnl_link_info_data_ipgre_types), |
334 | | - .types = rtnl_link_info_data_ipgre_types }, |
335 | | - [NL_UNION_LINK_INFO_DATA_IP6GRETAP_TUNNEL] = { .count = ELEMENTSOF(rtnl_link_info_data_ipgre_types), |
336 | | - .types = rtnl_link_info_data_ipgre_types }, |
337 | | - [NL_UNION_LINK_INFO_DATA_SIT_TUNNEL] = { .count = ELEMENTSOF(rtnl_link_info_data_iptun_types), |
338 | | - .types = rtnl_link_info_data_iptun_types }, |
339 | | - [NL_UNION_LINK_INFO_DATA_VTI_TUNNEL] = { .count = ELEMENTSOF(rtnl_link_info_data_ipvti_types), |
340 | | - .types = rtnl_link_info_data_ipvti_types }, |
341 | | - [NL_UNION_LINK_INFO_DATA_VTI6_TUNNEL] = { .count = ELEMENTSOF(rtnl_link_info_data_ipvti_types), |
342 | | - .types = rtnl_link_info_data_ipvti_types }, |
343 | | - [NL_UNION_LINK_INFO_DATA_IP6TNL_TUNNEL] = { .count = ELEMENTSOF(rtnl_link_info_data_ip6tnl_types), |
344 | | - .types = rtnl_link_info_data_ip6tnl_types }, |
345 | | - |
346 | | - [NL_UNION_LINK_INFO_DATA_VRF] = { .count = ELEMENTSOF(rtnl_link_info_data_vrf_types), |
347 | | - .types = rtnl_link_info_data_vrf_types }, |
348 | | - |
| 334 | + .types = rtnl_link_info_data_ipgre_types }, |
| 335 | + [NL_UNION_LINK_INFO_DATA_IP6GRE_TUNNEL] = { .count = ELEMENTSOF(rtnl_link_info_data_ipgre_types), |
| 336 | + .types = rtnl_link_info_data_ipgre_types }, |
| 337 | + [NL_UNION_LINK_INFO_DATA_IP6GRETAP_TUNNEL] = { .count = ELEMENTSOF(rtnl_link_info_data_ipgre_types), |
| 338 | + .types = rtnl_link_info_data_ipgre_types }, |
| 339 | + [NL_UNION_LINK_INFO_DATA_SIT_TUNNEL] = { .count = ELEMENTSOF(rtnl_link_info_data_iptun_types), |
| 340 | + .types = rtnl_link_info_data_iptun_types }, |
| 341 | + [NL_UNION_LINK_INFO_DATA_VTI_TUNNEL] = { .count = ELEMENTSOF(rtnl_link_info_data_ipvti_types), |
| 342 | + .types = rtnl_link_info_data_ipvti_types }, |
| 343 | + [NL_UNION_LINK_INFO_DATA_VTI6_TUNNEL] = { .count = ELEMENTSOF(rtnl_link_info_data_ipvti_types), |
| 344 | + .types = rtnl_link_info_data_ipvti_types }, |
| 345 | + [NL_UNION_LINK_INFO_DATA_IP6TNL_TUNNEL] = { .count = ELEMENTSOF(rtnl_link_info_data_ip6tnl_types), |
| 346 | + .types = rtnl_link_info_data_ip6tnl_types }, |
| 347 | + [NL_UNION_LINK_INFO_DATA_VRF] = { .count = ELEMENTSOF(rtnl_link_info_data_vrf_types), |
| 348 | + .types = rtnl_link_info_data_vrf_types }, |
349 | 349 | }; |
350 | 350 |
|
351 | 351 | static const NLTypeSystemUnion rtnl_link_info_data_type_system_union = { |
|
0 commit comments