ipip: refactor ipip.api with explicit types
Use explicit types vl_api_address/prefix in ipip.api. Change-Id: Ib3133cebdbe4437742924efd49cde4009c4cc31b Type: refactor Signed-off-by: Ole Troan <ot@cisco.com>
This commit is contained in:
![ot@cisco.com](/assets/img/avatar_default.png)
committed by
Paul Vinciguerra
![Paul Vinciguerra](/assets/img/avatar_default.png)
parent
048acfbd9e
commit
288e093624
@ -13,6 +13,7 @@ top_boilerplate = '''\
|
||||
* Automatically generated: please edit the input file NOT this file!
|
||||
*/
|
||||
|
||||
#include <stdbool.h>
|
||||
#if defined(vl_msg_id)||defined(vl_union_id) \\
|
||||
|| defined(vl_printfun) ||defined(vl_endianfun) \\
|
||||
|| defined(vl_api_version)||defined(vl_typedefs) \\
|
||||
|
@ -1,4 +1,3 @@
|
||||
/* Hey Emacs use -*- mode: C -*- */
|
||||
/*
|
||||
* Copyright (c) 2018 Cisco and/or its affiliates.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@ -58,13 +57,14 @@ import "vnet/ip/ip_types.api";
|
||||
*/
|
||||
typedef ipip_tunnel
|
||||
{
|
||||
u32 instance; /* If non-~0, specifies a custom dev instance */
|
||||
u32 instance; /* If non-~0, specifies a custom dev instance */
|
||||
vl_api_address_t src;
|
||||
vl_api_address_t dst;
|
||||
u32 sw_if_index; /* ignored on create, set in details/dump */
|
||||
u32 table_id;
|
||||
u8 tc_tos; /* If ~0, the TOS/TC value is copied from
|
||||
inner packet, otherwise set to value */
|
||||
vl_api_interface_index_t sw_if_index; /* ignored on create, set in
|
||||
details/dump */
|
||||
u32 table_id;
|
||||
u8 tc_tos; /* If ~0, the TOS/TC value is copied from
|
||||
inner packet, otherwise set to value */
|
||||
};
|
||||
|
||||
/**
|
||||
@ -103,14 +103,12 @@ define ipip_6rd_add_tunnel
|
||||
u32 context;
|
||||
u32 ip6_table_id;
|
||||
u32 ip4_table_id;
|
||||
u8 ip6_prefix[16];
|
||||
u8 ip4_prefix[4];
|
||||
u8 ip4_src[4];
|
||||
u8 ip6_prefix_len;
|
||||
u8 ip4_prefix_len;
|
||||
u8 security_check;
|
||||
u8 tc_tos; /* If ~0, the TOS/TC value is copied from
|
||||
inner packet, otherwise set to value */
|
||||
vl_api_ip6_prefix_t ip6_prefix;
|
||||
vl_api_ip4_prefix_t ip4_prefix;
|
||||
vl_api_ip4_address_t ip4_src;
|
||||
bool security_check;
|
||||
u8 tc_tos; /* If ~0, the TOS/TC value is copied from
|
||||
inner packet, otherwise set to value */
|
||||
};
|
||||
|
||||
define ipip_6rd_add_tunnel_reply
|
||||
@ -145,9 +143,3 @@ define ipip_tunnel_details
|
||||
u32 context;
|
||||
vl_api_ipip_tunnel_t tunnel;
|
||||
};
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* eval: (c-set-style "gnu")
|
||||
* End:
|
||||
*/
|
||||
|
@ -178,10 +178,10 @@ vl_api_ipip_6rd_add_tunnel_t_handler (vl_api_ipip_6rd_add_tunnel_t * mp)
|
||||
}
|
||||
else
|
||||
{
|
||||
rv = sixrd_add_tunnel ((ip6_address_t *) & mp->ip6_prefix,
|
||||
mp->ip6_prefix_len,
|
||||
(ip4_address_t *) & mp->ip4_prefix,
|
||||
mp->ip4_prefix_len,
|
||||
rv = sixrd_add_tunnel ((ip6_address_t *) & mp->ip6_prefix.prefix,
|
||||
mp->ip6_prefix.len,
|
||||
(ip4_address_t *) & mp->ip4_prefix.prefix,
|
||||
mp->ip4_prefix.len,
|
||||
(ip4_address_t *) & mp->ip4_src,
|
||||
mp->security_check,
|
||||
ip4_fib_index, ip6_fib_index,
|
||||
|
@ -88,9 +88,13 @@ class Test6RD(VppTestCase):
|
||||
p_ether = Ether(src=self.pg0.remote_mac, dst=self.pg0.local_mac)
|
||||
p_ip6 = IPv6(src="1::1", dst="2002:AC10:0202::1", nh='UDP')
|
||||
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(0, 0, inet_pton(AF_INET6, '2002::'),
|
||||
inet_pton(AF_INET, '0.0.0.0'),
|
||||
self.pg0.local_ip4n, 16, 0, True)
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=0,
|
||||
ip4_table_id=0,
|
||||
ip6_prefix='2002::/16',
|
||||
ip4_prefix='0.0.0.0/0',
|
||||
ip4_src=self.pg0.local_ip4,
|
||||
security_check=True)
|
||||
|
||||
self.tunnel_index = rv.sw_if_index
|
||||
|
||||
self.vapi.cli("show ip6 fib")
|
||||
@ -121,10 +125,11 @@ class Test6RD(VppTestCase):
|
||||
p_ether = Ether(src=self.pg2.remote_mac, dst=self.pg2.local_mac)
|
||||
p_ip6 = IPv6(src="1::1", dst="2002:AC10:0402::1", nh='UDP')
|
||||
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(20, 10,
|
||||
inet_pton(AF_INET6, '2002::'),
|
||||
inet_pton(AF_INET, '0.0.0.0'),
|
||||
self.pg2.local_ip4n, 16, 0, True)
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=20, ip4_table_id=10,
|
||||
ip6_prefix='2002::/16',
|
||||
ip4_prefix='0.0.0.0/0',
|
||||
ip4_src=self.pg2.local_ip4,
|
||||
security_check=True)
|
||||
self.tunnel_index = rv.sw_if_index
|
||||
|
||||
self.vapi.cli("show ip6 fib")
|
||||
@ -153,14 +158,20 @@ class Test6RD(VppTestCase):
|
||||
def test_6rd_ip4_to_ip6(self):
|
||||
""" ip4 -> ip6 (decap) 6rd test """
|
||||
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(0, 0, inet_pton(AF_INET6, '2002::'),
|
||||
inet_pton(AF_INET, '0.0.0.0'),
|
||||
self.pg0.local_ip4n, 16, 0, True)
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=0,
|
||||
ip4_table_id=0,
|
||||
ip6_prefix='2002::/16',
|
||||
ip4_prefix='0.0.0.0/0',
|
||||
ip4_src=self.pg0.local_ip4,
|
||||
security_check=True)
|
||||
self.tunnel_index = rv.sw_if_index
|
||||
rv = self.vapi.ipip_6rd_del_tunnel(rv.sw_if_index)
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(0, 0, inet_pton(AF_INET6, '2002::'),
|
||||
inet_pton(AF_INET, '0.0.0.0'),
|
||||
self.pg0.local_ip4n, 16, 0, True)
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=0,
|
||||
ip4_table_id=0,
|
||||
ip6_prefix='2002::/16',
|
||||
ip4_prefix='0.0.0.0/0',
|
||||
ip4_src=self.pg0.local_ip4,
|
||||
security_check=True)
|
||||
self.tunnel_index = rv.sw_if_index
|
||||
|
||||
p_ip6 = (IPv6(src="2002:AC10:0202::1", dst=self.pg1.remote_ip6) /
|
||||
@ -181,16 +192,20 @@ class Test6RD(VppTestCase):
|
||||
def test_6rd_ip4_to_ip6_vrf(self):
|
||||
""" ip4 -> ip6 (decap) 6rd VRF test """
|
||||
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(20, 10,
|
||||
inet_pton(AF_INET6, '2002::'),
|
||||
inet_pton(AF_INET, '0.0.0.0'),
|
||||
self.pg2.local_ip4n, 16, 0, True)
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=20,
|
||||
ip4_table_id=10,
|
||||
ip6_prefix='2002::/16',
|
||||
ip4_prefix='0.0.0.0/0',
|
||||
ip4_src=self.pg2.local_ip4,
|
||||
security_check=True)
|
||||
self.tunnel_index = rv.sw_if_index
|
||||
rv = self.vapi.ipip_6rd_del_tunnel(rv.sw_if_index)
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(20, 10,
|
||||
inet_pton(AF_INET6, '2002::'),
|
||||
inet_pton(AF_INET, '0.0.0.0'),
|
||||
self.pg2.local_ip4n, 16, 0, True)
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=20,
|
||||
ip4_table_id=10,
|
||||
ip6_prefix='2002::/16',
|
||||
ip4_prefix='0.0.0.0/0',
|
||||
ip4_src=self.pg2.local_ip4,
|
||||
security_check=True)
|
||||
self.tunnel_index = rv.sw_if_index
|
||||
self.vapi.sw_interface_set_table(self.tunnel_index, 1, 20)
|
||||
|
||||
@ -214,14 +229,20 @@ class Test6RD(VppTestCase):
|
||||
""" ip4 -> ip6 (decap) 6rd test """
|
||||
|
||||
self.tunnel_index = []
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(0, 0, inet_pton(AF_INET6, '2002::'),
|
||||
inet_pton(AF_INET, '0.0.0.0'),
|
||||
self.pg0.local_ip4n, 16, 0, True)
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=0,
|
||||
ip4_table_id=0,
|
||||
ip6_prefix='2002::/16',
|
||||
ip4_prefix='0.0.0.0/0',
|
||||
ip4_src=self.pg0.local_ip4,
|
||||
security_check=True)
|
||||
self.tunnel_index.append(rv.sw_if_index)
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=0,
|
||||
ip4_table_id=0,
|
||||
ip6_prefix='2003::/16',
|
||||
ip4_prefix='0.0.0.0/0',
|
||||
ip4_src=self.pg1.local_ip4,
|
||||
security_check=True)
|
||||
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(0, 0, inet_pton(AF_INET6, '2003::'),
|
||||
inet_pton(AF_INET, '0.0.0.0'),
|
||||
self.pg1.local_ip4n, 16, 0, True)
|
||||
self.tunnel_index.append(rv.sw_if_index)
|
||||
|
||||
self.vapi.cli("show ip6 fib")
|
||||
@ -247,10 +268,12 @@ class Test6RD(VppTestCase):
|
||||
def test_6rd_ip4_to_ip6_suffix(self):
|
||||
""" ip4 -> ip6 (decap) 6rd test """
|
||||
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(0, 0, inet_pton(AF_INET6, '2002::'),
|
||||
inet_pton(AF_INET, '172.0.0.0'),
|
||||
self.pg0.local_ip4n, 16, 8, True)
|
||||
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=0,
|
||||
ip4_table_id=0,
|
||||
ip6_prefix='2002::/16',
|
||||
ip4_prefix='172.0.0.0/8',
|
||||
ip4_src=self.pg0.local_ip4,
|
||||
security_check=True)
|
||||
self.tunnel_index = rv.sw_if_index
|
||||
|
||||
self.vapi.cli("show ip6 fib")
|
||||
@ -268,9 +291,12 @@ class Test6RD(VppTestCase):
|
||||
def test_6rd_ip4_to_ip6_sec_check(self):
|
||||
""" ip4 -> ip6 (decap) security check 6rd test """
|
||||
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(0, 0, inet_pton(AF_INET6, '2002::'),
|
||||
inet_pton(AF_INET, '0.0.0.0'),
|
||||
self.pg0.local_ip4n, 16, 0, True)
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=0,
|
||||
ip4_table_id=0,
|
||||
ip6_prefix='2002::/16',
|
||||
ip4_prefix='0.0.0.0/0',
|
||||
ip4_src=self.pg0.local_ip4,
|
||||
security_check=True)
|
||||
self.tunnel_index = rv.sw_if_index
|
||||
|
||||
self.vapi.cli("show ip6 fib")
|
||||
@ -300,9 +326,13 @@ class Test6RD(VppTestCase):
|
||||
def test_6rd_bgp_tunnel(self):
|
||||
""" 6rd BGP tunnel """
|
||||
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(0, 0, inet_pton(AF_INET6, '2002::'),
|
||||
inet_pton(AF_INET, '0.0.0.0'),
|
||||
self.pg0.local_ip4n, 16, 0, False)
|
||||
rv = self.vapi.ipip_6rd_add_tunnel(ip6_table_id=0,
|
||||
ip4_table_id=0,
|
||||
ip6_prefix='2002::/16',
|
||||
ip4_prefix='0.0.0.0/0',
|
||||
ip4_src=self.pg0.local_ip4,
|
||||
security_check=False)
|
||||
|
||||
self.tunnel_index = rv.sw_if_index
|
||||
|
||||
default_route = VppIpRoute(
|
||||
|
Reference in New Issue
Block a user