in ptf/saivlan.py [0:0]
def vlanFloodEnhancedTest(self):
"""
Verifies flooding for the vlan which contains ports and LAGs
"""
print("\nvlanFloodEnhancedTest()")
print("Flood test on ports 1,2, lag 1 and 2")
vlan100 = sai_thrift_create_vlan(self.client, vlan_id=100)
vlan_member101 = sai_thrift_create_vlan_member(
self.client,
vlan_id=vlan100,
bridge_port_id=self.port26_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_TAGGED)
vlan_member102 = sai_thrift_create_vlan_member(
self.client,
vlan_id=vlan100,
bridge_port_id=self.port27_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_TAGGED)
vlan_member103 = sai_thrift_create_vlan_member(
self.client,
vlan_id=vlan100,
bridge_port_id=self.lag10_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_TAGGED)
vlan_member104 = sai_thrift_create_vlan_member(
self.client,
vlan_id=vlan100,
bridge_port_id=self.lag11_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_TAGGED)
vlan_member105 = sai_thrift_create_vlan_member(
self.client,
vlan_id=vlan100,
bridge_port_id=self.port30_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_TAGGED)
vlan200 = sai_thrift_create_vlan(self.client, vlan_id=200)
vlan_member201 = sai_thrift_create_vlan_member(
self.client,
vlan_id=vlan200,
bridge_port_id=self.port26_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_UNTAGGED)
vlan_member202 = sai_thrift_create_vlan_member(
self.client,
vlan_id=vlan200,
bridge_port_id=self.port27_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_UNTAGGED)
vlan_member203 = sai_thrift_create_vlan_member(
self.client,
vlan_id=vlan200,
bridge_port_id=self.lag10_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_UNTAGGED)
vlan_member204 = sai_thrift_create_vlan_member(
self.client,
vlan_id=vlan200,
bridge_port_id=self.lag11_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_UNTAGGED)
sai_thrift_set_vlan_attribute(self.client, vlan100, learn_disable=True)
sai_thrift_set_vlan_attribute(self.client, vlan200, learn_disable=True)
sai_thrift_set_port_attribute(
self.client, self.port26, port_vlan_id=200)
sai_thrift_set_port_attribute(
self.client, self.port27, port_vlan_id=200)
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)
pkt200 = simple_arp_packet(
eth_dst='FF:FF:FF:FF:FF:FF',
eth_src='00:22:22:33:44:55',
arp_op=1, # ARP request
ip_tgt='10.10.10.1',
ip_snd='10.10.10.2',
hw_snd='00:22:22:33:44:55',
pktlen=100)
pkt100 = simple_arp_packet(
eth_dst='FF:FF:FF:FF:FF:FF',
eth_src='00:22:22:33:44:55',
arp_op=1, # ARP request
ip_tgt='10.10.10.1',
ip_snd='10.10.10.2',
hw_snd='00:22:22:33:44:55',
vlan_vid=100,
pktlen=100)
try:
print("Add ports 24 and 25 to lag10 and lag11")
lag_mbr32 = sai_thrift_create_lag_member(
self.client, lag_id=self.lag10, port_id=self.port24)
lag_mbr42 = sai_thrift_create_lag_member(
self.client, lag_id=self.lag11, port_id=self.port25)
lag1_ports = [self.dev_port28, self.dev_port24]
lag2_ports = [self.dev_port29, self.dev_port25]
send_packet(self, self.dev_port26, pkt100)
verify_each_packet_on_multiple_port_lists(
self, [pkt100] * 4,
[lag1_ports, lag2_ports,
[self.dev_port27], [self.dev_port30]])
send_packet(self, self.dev_port28, pkt100)
verify_each_packet_on_multiple_port_lists(
self, [pkt100] * 4,
[[self.dev_port26], lag2_ports,
[self.dev_port27], [self.dev_port30]])
send_packet(self, self.dev_port29, pkt100)
verify_each_packet_on_multiple_port_lists(
self, [pkt100] * 4,
[[self.dev_port26], lag1_ports,
[self.dev_port27], [self.dev_port30]])
send_packet(self, self.dev_port30, pkt100)
verify_each_packet_on_multiple_port_lists(
self, [pkt100] * 4,
[[self.dev_port26], lag1_ports,
lag2_ports, [self.dev_port27]])
print("Remove ports 24 and 25 from lag10 and lag11")
sai_thrift_remove_lag_member(self.client, lag_mbr32)
sai_thrift_remove_lag_member(self.client, lag_mbr42)
lag1_ports = [self.dev_port28]
lag2_ports = [self.dev_port29]
send_packet(self, self.dev_port26, pkt100)
verify_each_packet_on_multiple_port_lists(
self, [pkt100] * 4,
[lag1_ports, lag2_ports,
[self.dev_port27], [self.dev_port30]])
send_packet(self, self.dev_port28, pkt100)
verify_each_packet_on_multiple_port_lists(
self, [pkt100] * 4,
[[self.dev_port26], lag2_ports,
[self.dev_port27], [self.dev_port30]])
send_packet(self, self.dev_port29, pkt100)
verify_each_packet_on_multiple_port_lists(
self, [pkt100] * 4,
[[self.dev_port26], lag1_ports,
[self.dev_port27], [self.dev_port30]])
send_packet(self, self.dev_port30, pkt100)
verify_each_packet_on_multiple_port_lists(
self, [pkt100] * 4,
[[self.dev_port26], lag1_ports,
lag2_ports, [self.dev_port27]])
print("Add ports 24 and 25 to lag10 and lag11")
lag_mbr32 = sai_thrift_create_lag_member(
self.client, lag_id=self.lag10, port_id=self.port24)
lag_mbr42 = sai_thrift_create_lag_member(
self.client, lag_id=self.lag11, port_id=self.port25)
lag1_ports = [self.dev_port28, self.dev_port24]
lag2_ports = [self.dev_port29, self.dev_port25]
send_packet(self, self.dev_port26, pkt100)
verify_each_packet_on_multiple_port_lists(
self, [pkt100] * 4,
[lag1_ports, lag2_ports,
[self.dev_port27], [self.dev_port30]])
send_packet(self, self.dev_port28, pkt100)
verify_each_packet_on_multiple_port_lists(
self, [pkt100] * 4,
[[self.dev_port26], lag2_ports,
[self.dev_port27], [self.dev_port30]])
send_packet(self, self.dev_port29, pkt100)
verify_each_packet_on_multiple_port_lists(
self, [pkt100] * 4,
[[self.dev_port26], lag1_ports,
[self.dev_port27], [self.dev_port30]])
send_packet(self, self.dev_port30, pkt100)
verify_each_packet_on_multiple_port_lists(
self, [pkt100] * 4,
[[self.dev_port26], lag1_ports,
lag2_ports, [self.dev_port27]])
print("Remove port 30 from vlan 100")
sai_thrift_remove_vlan_member(self.client, vlan_member105)
send_packet(self, self.dev_port26, pkt100)
verify_each_packet_on_multiple_port_lists(
self, [pkt100] * 3,
[lag1_ports, lag2_ports, [self.dev_port27]])
send_packet(self, self.dev_port28, pkt100)
verify_each_packet_on_multiple_port_lists(
self, [pkt100] * 3,
[[self.dev_port26], lag2_ports, [self.dev_port27]])
send_packet(self, self.dev_port29, pkt100)
verify_each_packet_on_multiple_port_lists(
self, [pkt100] * 3,
[[self.dev_port26], lag1_ports, [self.dev_port27]])
send_packet(self, self.dev_port27, pkt200)
verify_each_packet_on_multiple_port_lists(
self, [pkt200] * 3,
[lag1_ports, lag2_ports, [self.dev_port26]])
send_packet(self, self.dev_port24, pkt200)
verify_each_packet_on_multiple_port_lists(
self, [pkt200] * 3,
[[self.dev_port26], lag2_ports, [self.dev_port27]])
send_packet(self, self.dev_port25, pkt200)
verify_each_packet_on_multiple_port_lists(
self, [pkt200] * 3,
[[self.dev_port26], lag1_ports, [self.dev_port27]])
print("Add port 30 to vlan 200")
vlan_member205 = sai_thrift_create_vlan_member(
self.client,
vlan_id=vlan200,
bridge_port_id=self.port30_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_UNTAGGED)
sai_thrift_set_port_attribute(
self.client, self.port30, port_vlan_id=200)
send_packet(self, self.dev_port27, pkt200)
verify_each_packet_on_multiple_port_lists(
self, [pkt200] * 4,
[lag1_ports, lag2_ports,
[self.dev_port26], [self.dev_port30]])
send_packet(self, self.dev_port24, pkt200)
verify_each_packet_on_multiple_port_lists(
self, [pkt200] * 4,
[[self.dev_port26], lag2_ports,
[self.dev_port27], [self.dev_port30]])
send_packet(self, self.dev_port25, pkt200)
verify_each_packet_on_multiple_port_lists(
self, [pkt200] * 4,
[[self.dev_port26], lag1_ports,
[self.dev_port27], [self.dev_port30]])
send_packet(self, self.dev_port30, pkt200)
verify_each_packet_on_multiple_port_lists(
self, [pkt200] * 4,
[[self.dev_port26], lag1_ports,
lag2_ports, [self.dev_port27]])
finally:
sai_thrift_set_port_attribute(
self.client, self.port26, port_vlan_id=1)
sai_thrift_set_port_attribute(
self.client, self.port27, port_vlan_id=1)
sai_thrift_set_port_attribute(
self.client, self.port30, port_vlan_id=1)
sai_thrift_set_lag_attribute(
self.client, self.lag10, port_vlan_id=1)
sai_thrift_set_lag_attribute(
self.client, self.lag11, port_vlan_id=1)
sai_thrift_set_vlan_attribute(
self.client, vlan100, learn_disable=False)
sai_thrift_set_vlan_attribute(
self.client, vlan200, learn_disable=False)
sai_thrift_remove_vlan_member(self.client, vlan_member101)
sai_thrift_remove_vlan_member(self.client, vlan_member102)
sai_thrift_remove_vlan_member(self.client, vlan_member103)
sai_thrift_remove_vlan_member(self.client, vlan_member104)
sai_thrift_remove_vlan_member(self.client, vlan_member201)
sai_thrift_remove_vlan_member(self.client, vlan_member202)
sai_thrift_remove_vlan_member(self.client, vlan_member203)
sai_thrift_remove_vlan_member(self.client, vlan_member204)
sai_thrift_remove_vlan_member(self.client, vlan_member205)
sai_thrift_remove_vlan(self.client, vlan100)
sai_thrift_remove_vlan(self.client, vlan200)
sai_thrift_remove_lag_member(self.client, lag_mbr32)
sai_thrift_remove_lag_member(self.client, lag_mbr42)