in ptf/sainexthopgroup.py [0:0]
def setUp(self):
super(L3IPv6SVIEcmpTestHelper, self).setUp()
self.vlan100_rif_counter_in = 0
self.vlan100_rif_counter_out = 0
self.vlan200_rif_counter_in = 0
self.vlan200_rif_counter_out = 0
self.vlan100_bcast_in = 0
self.vlan100_bcast_out = 0
self.vlan200_bcast_in = 0
self.vlan200_bcast_out = 0
# set switch src mac address
sai_thrift_set_switch_attribute(
self.client, src_mac_address=ROUTER_MAC)
sai_thrift_set_switch_attribute(
self.client, ecmp_default_hash_seed=TEST_ECMP_SEED)
sai_thrift_set_switch_attribute(
self.client, lag_default_hash_seed=TEST_LAG_SEED)
self.port24_bp = sai_thrift_create_bridge_port(
self.client,
bridge_id=self.default_1q_bridge,
port_id=self.port24,
type=SAI_BRIDGE_PORT_TYPE_PORT)
self.port25_bp = sai_thrift_create_bridge_port(
self.client,
bridge_id=self.default_1q_bridge,
port_id=self.port25,
type=SAI_BRIDGE_PORT_TYPE_PORT)
self.port26_bp = sai_thrift_create_bridge_port(
self.client,
bridge_id=self.default_1q_bridge,
port_id=self.port26,
type=SAI_BRIDGE_PORT_TYPE_PORT)
self.port10_bp = sai_thrift_create_bridge_port(
self.client,
bridge_id=self.default_1q_bridge,
port_id=self.port10,
type=SAI_BRIDGE_PORT_TYPE_PORT)
self.port11_bp = sai_thrift_create_bridge_port(
self.client,
bridge_id=self.default_1q_bridge,
port_id=self.port11,
type=SAI_BRIDGE_PORT_TYPE_PORT)
# vlan100 with members port24, port25 and port26
self.vlan100 = sai_thrift_create_vlan(self.client, vlan_id=100)
self.vlan_member100 = sai_thrift_create_vlan_member(
self.client,
vlan_id=self.vlan100,
bridge_port_id=self.port24_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_UNTAGGED)
self.vlan_member101 = sai_thrift_create_vlan_member(
self.client,
vlan_id=self.vlan100,
bridge_port_id=self.port25_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_UNTAGGED)
self.vlan_member102 = sai_thrift_create_vlan_member(
self.client,
vlan_id=self.vlan100,
bridge_port_id=self.port26_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_UNTAGGED)
sai_thrift_set_port_attribute(
self.client, self.port24, port_vlan_id=100)
sai_thrift_set_port_attribute(
self.client, self.port25, port_vlan_id=100)
sai_thrift_set_port_attribute(
self.client, self.port26, port_vlan_id=100)
# create vlan100_rif
self.vlan100_rif = sai_thrift_create_router_interface(
self.client,
type=SAI_ROUTER_INTERFACE_TYPE_VLAN,
virtual_router_id=self.default_vrf,
vlan_id=self.vlan100,
admin_v6_state=True)
dmac1 = '00:11:22:33:44:55'
dmac2 = '00:22:22:33:44:55'
dmac3 = '00:33:22:33:44:55'
dmac4 = '00:11:00:00:00:04'
dmac5 = '00:11:00:00:00:05'
dmac6 = '00:11:00:00:00:06'
dmac7 = '00:11:00:00:00:07'
# create nhop1, nhop2 & nhop3 on SVI
self.neighbor_entry1 = sai_thrift_neighbor_entry_t(
rif_id=self.vlan100_rif,
ip_address=sai_ipaddress('1000:1:1:0:0:0:0:1'))
sai_thrift_create_neighbor_entry(
self.client, self.neighbor_entry1, dst_mac_address=dmac1)
self.nhop1 = sai_thrift_create_next_hop(
self.client,
ip=sai_ipaddress('1000:1:1:0:0:0:0:1'),
router_interface_id=self.vlan100_rif,
type=SAI_NEXT_HOP_TYPE_IP)
self.neighbor_entry2 = sai_thrift_neighbor_entry_t(
rif_id=self.vlan100_rif,
ip_address=sai_ipaddress('1000:1:1:0:0:0:0:2'))
sai_thrift_create_neighbor_entry(
self.client, self.neighbor_entry2, dst_mac_address=dmac2)
self.nhop2 = sai_thrift_create_next_hop(
self.client,
ip=sai_ipaddress('1000:1:1:0:0:0:0:2'),
router_interface_id=self.vlan100_rif,
type=SAI_NEXT_HOP_TYPE_IP)
self.neighbor_entry3 = sai_thrift_neighbor_entry_t(
rif_id=self.vlan100_rif,
ip_address=sai_ipaddress('1000:1:1:0:0:0:0:3'))
sai_thrift_create_neighbor_entry(
self.client, self.neighbor_entry3, dst_mac_address=dmac3)
self.nhop3 = sai_thrift_create_next_hop(
self.client,
ip=sai_ipaddress('1000:1:1:0:0:0:0:3'),
router_interface_id=self.vlan100_rif,
type=SAI_NEXT_HOP_TYPE_IP)
self.nhop_group1 = sai_thrift_create_next_hop_group(
self.client, type=SAI_NEXT_HOP_GROUP_TYPE_ECMP)
self.nh_group1_member1 = sai_thrift_create_next_hop_group_member(
self.client,
next_hop_group_id=self.nhop_group1,
next_hop_id=self.nhop1)
self.nh_group1_member2 = sai_thrift_create_next_hop_group_member(
self.client,
next_hop_group_id=self.nhop_group1,
next_hop_id=self.nhop2)
self.nh_group1_member3 = sai_thrift_create_next_hop_group_member(
self.client,
next_hop_group_id=self.nhop_group1,
next_hop_id=self.nhop3)
# create route entries
self.route0 = sai_thrift_route_entry_t(
switch_id=self.switch_id,
destination=sai_ipprefix('4000:1:1:0:0:0:0:1/16'),
vr_id=self.default_vrf)
status = sai_thrift_create_route_entry(
self.client, self.route0, next_hop_id=self.nhop_group1)
self.assertEqual(status, SAI_STATUS_SUCCESS)
# create nhop and route to L2 intf
self.lag10 = sai_thrift_create_lag(self.client)
self.lag10_bp = sai_thrift_create_bridge_port(
self.client,
bridge_id=self.default_1q_bridge,
port_id=self.lag10,
type=SAI_BRIDGE_PORT_TYPE_PORT)
self.lag10_member30 = sai_thrift_create_lag_member(
self.client, lag_id=self.lag10, port_id=self.port30)
self.lag10_member31 = sai_thrift_create_lag_member(
self.client, lag_id=self.lag10, port_id=self.port31)
self.lag11 = sai_thrift_create_lag(self.client)
self.lag11_bp = sai_thrift_create_bridge_port(
self.client,
bridge_id=self.default_1q_bridge,
port_id=self.lag11,
type=SAI_BRIDGE_PORT_TYPE_PORT)
self.lag11_member28 = sai_thrift_create_lag_member(
self.client, lag_id=self.lag11, port_id=self.port28)
self.lag11_member29 = sai_thrift_create_lag_member(
self.client, lag_id=self.lag11, port_id=self.port29)
# create vlan200_rif
self.vlan200 = sai_thrift_create_vlan(self.client, vlan_id=200)
self.vlan_member200 = sai_thrift_create_vlan_member(
self.client,
vlan_id=self.vlan200,
bridge_port_id=self.lag10_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_UNTAGGED)
self.vlan_member201 = sai_thrift_create_vlan_member(
self.client,
vlan_id=self.vlan200,
bridge_port_id=self.lag11_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_UNTAGGED)
self.vlan_member202 = sai_thrift_create_vlan_member(
self.client,
vlan_id=self.vlan200,
bridge_port_id=self.port10_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_UNTAGGED)
self.vlan_member203 = sai_thrift_create_vlan_member(
self.client,
vlan_id=self.vlan200,
bridge_port_id=self.port11_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_UNTAGGED)
sai_thrift_set_lag_attribute(self.client, self.lag10, port_vlan_id=200)
sai_thrift_set_lag_attribute(self.client, self.lag11, port_vlan_id=200)
sai_thrift_set_port_attribute(
self.client, self.port10, port_vlan_id=200)
sai_thrift_set_port_attribute(
self.client, self.port11, port_vlan_id=200)
self.vlan200_rif = sai_thrift_create_router_interface(
self.client,
type=SAI_ROUTER_INTERFACE_TYPE_VLAN,
virtual_router_id=self.default_vrf,
vlan_id=self.vlan200,
admin_v6_state=True)
self.neighbor_entry4 = sai_thrift_neighbor_entry_t(
rif_id=self.port10_rif,
ip_address=sai_ipaddress('2010:1:1:0:0:0:0:1'))
sai_thrift_create_neighbor_entry(
self.client, self.neighbor_entry4, dst_mac_address=dmac4)
self.nhop4 = sai_thrift_create_next_hop(
self.client,
ip=sai_ipaddress('2010:1:1:0:0:0:0:1'),
router_interface_id=self.port10_rif,
type=SAI_NEXT_HOP_TYPE_IP)
# Create nhop5 and nhop6 on SVI
self.neighbor_entry5 = sai_thrift_neighbor_entry_t(
rif_id=self.vlan200_rif,
ip_address=sai_ipaddress('2010:1:1:0:0:0:0:2'))
sai_thrift_create_neighbor_entry(
self.client, self.neighbor_entry5, dst_mac_address=dmac5)
self.nhop5 = sai_thrift_create_next_hop(
self.client,
ip=sai_ipaddress('2010:1:1:0:0:0:0:2'),
router_interface_id=self.vlan200_rif,
type=SAI_NEXT_HOP_TYPE_IP)
self.neighbor_entry6 = sai_thrift_neighbor_entry_t(
rif_id=self.vlan200_rif,
ip_address=sai_ipaddress('2010:1:1:0:0:0:0:3'))
sai_thrift_create_neighbor_entry(
self.client, self.neighbor_entry6, dst_mac_address=dmac6)
self.nhop6 = sai_thrift_create_next_hop(
self.client,
ip=sai_ipaddress('2010:1:1:0:0:0:0:3'),
router_interface_id=self.vlan200_rif,
type=SAI_NEXT_HOP_TYPE_IP)
self.neighbor_entry7 = sai_thrift_neighbor_entry_t(
rif_id=self.port11_rif,
ip_address=sai_ipaddress('2010:1:1:0:0:0:0:4'))
sai_thrift_create_neighbor_entry(
self.client, self.neighbor_entry7, dst_mac_address=dmac7)
self.nhop7 = sai_thrift_create_next_hop(
self.client,
ip=sai_ipaddress('2010:1:1:0:0:0:0:4'),
router_interface_id=self.port11_rif,
type=SAI_NEXT_HOP_TYPE_IP)
self.nhop_group2 = sai_thrift_create_next_hop_group(
self.client, type=SAI_NEXT_HOP_GROUP_TYPE_ECMP)
self.nh_group2_member1 = sai_thrift_create_next_hop_group_member(
self.client,
next_hop_group_id=self.nhop_group2,
next_hop_id=self.nhop4)
self.nh_group2_member2 = sai_thrift_create_next_hop_group_member(
self.client,
next_hop_group_id=self.nhop_group2,
next_hop_id=self.nhop5)
self.nh_group2_member3 = sai_thrift_create_next_hop_group_member(
self.client,
next_hop_group_id=self.nhop_group2,
next_hop_id=self.nhop6)
self.nh_group2_member4 = sai_thrift_create_next_hop_group_member(
self.client,
next_hop_group_id=self.nhop_group2,
next_hop_id=self.nhop7)
self.route1 = sai_thrift_route_entry_t(
switch_id=self.switch_id,
destination=sai_ipprefix('5500:1:1:0:0:0:0:1/65'),
vr_id=self.default_vrf)
status = sai_thrift_create_route_entry(
self.client, self.route1, next_hop_id=self.nhop_group2)
self.assertEqual(status, SAI_STATUS_SUCCESS)
# define IPv4 IPv6 LagIPv4Hash and LagIPv6Hash
self.ipv4_hash_id, self.ipv6_hash_id = setup_hash(self)