in ptf/saivlan.py [0:0]
def priorityTaggingTest(self):
"""
Verifies forwarding of priority tagged packets on port and LAG
"""
print("\npriorityTaggingTest()")
mac5 = '00:55:55:55:55:55'
mac6 = '00:66:66:66:66:66'
mac7 = '00:77:77:77:77:77'
mac8 = '00:88:88:88:88:88'
mac_action = SAI_PACKET_ACTION_FORWARD
vlan_member1 = sai_thrift_create_vlan_member(
self.client,
vlan_id=self.vlan20,
bridge_port_id=self.port26_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_TAGGED)
vlan_member2 = sai_thrift_create_vlan_member(
self.client,
vlan_id=self.vlan20,
bridge_port_id=self.port27_bp,
vlan_tagging_mode=SAI_VLAN_TAGGING_MODE_UNTAGGED)
fdb_entry1 = sai_thrift_fdb_entry_t(
switch_id=self.switch_id,
mac_address=mac5,
bv_id=self.vlan10)
sai_thrift_create_fdb_entry(
self.client,
fdb_entry1,
type=SAI_FDB_ENTRY_TYPE_STATIC,
bridge_port_id=self.lag1_bp,
packet_action=mac_action)
fdb_entry2 = sai_thrift_fdb_entry_t(
switch_id=self.switch_id,
mac_address=mac6,
bv_id=self.vlan20)
sai_thrift_create_fdb_entry(
self.client,
fdb_entry2,
type=SAI_FDB_ENTRY_TYPE_STATIC,
bridge_port_id=self.lag2_bp,
packet_action=mac_action)
fdb_entry3 = sai_thrift_fdb_entry_t(
switch_id=self.switch_id,
mac_address=mac7,
bv_id=self.vlan20)
sai_thrift_create_fdb_entry(
self.client,
fdb_entry3,
type=SAI_FDB_ENTRY_TYPE_STATIC,
bridge_port_id=self.port26_bp,
packet_action=mac_action)
fdb_entry4 = sai_thrift_fdb_entry_t(
switch_id=self.switch_id,
mac_address=mac8,
bv_id=self.vlan20)
sai_thrift_create_fdb_entry(
self.client,
fdb_entry4,
type=SAI_FDB_ENTRY_TYPE_STATIC,
bridge_port_id=self.port27_bp,
packet_action=mac_action)
try:
# access port testing
pkt = simple_udp_packet(eth_dst='00:33:33:33:33:33',
eth_src='00:11:11:11:11:11',
dl_vlan_enable=True,
vlan_vid=0,
ip_ttl=64,
pktlen=104)
exp_pkt = simple_udp_packet(eth_dst='00:33:33:33:33:33',
eth_src='00:11:11:11:11:11',
ip_ttl=64,
pktlen=100)
print("Sending priority tagged packet on access port %d -> "
"access port %d" % (self.dev_port0, self.dev_port24))
send_packet(self, self.dev_port0, pkt)
verify_packet(self, exp_pkt, self.dev_port24)
self.i_pkt_count += 1
self.e_pkt_count += 1
pkt = simple_udp_packet(eth_dst='00:22:22:22:22:22',
eth_src='00:11:11:11:11:11',
dl_vlan_enable=True,
vlan_vid=0,
ip_ttl=64)
exp_pkt = simple_udp_packet(eth_dst='00:22:22:22:22:22',
eth_src='00:11:11:11:11:11',
dl_vlan_enable=True,
vlan_vid=10,
ip_ttl=64)
print("Sending priority tagged packet on access port %d -> "
"trunk port %d" % (self.dev_port0, self.dev_port1))
send_packet(self, self.dev_port0, pkt)
verify_packet(self, exp_pkt, self.dev_port1)
self.i_pkt_count += 1
self.e_pkt_count += 1
# access port testing LAG
pkt = simple_udp_packet(eth_dst='00:33:33:33:33:33',
eth_src='00:55:55:55:55:55',
dl_vlan_enable=True,
vlan_vid=0,
ip_ttl=64,
pktlen=104)
exp_pkt = simple_udp_packet(eth_dst='00:33:33:33:33:33',
eth_src='00:55:55:55:55:55',
ip_ttl=64,
pktlen=100)
print("Sending priority tagged packet on access lag1 -> "
"access port %d" % (self.dev_port24))
send_packet(self, self.dev_port4, pkt)
verify_packet(self, exp_pkt, self.dev_port24)
self.i_pkt_count += 1
self.e_pkt_count += 1
pkt = simple_udp_packet(eth_dst='00:22:22:22:22:22',
eth_src='00:55:55:55:55:55',
dl_vlan_enable=True,
vlan_vid=0,
ip_ttl=64)
exp_pkt = simple_udp_packet(eth_dst='00:22:22:22:22:22',
eth_src='00:55:55:55:55:55',
dl_vlan_enable=True,
vlan_vid=10,
ip_ttl=64)
print("Sending priority tagged packet on access lag1 -> "
"trunk port %d" % (self.dev_port1))
send_packet(self, self.dev_port4, pkt)
verify_packet(self, exp_pkt, self.dev_port1)
self.i_pkt_count += 1
self.e_pkt_count += 1
# trunk port testing
pkt = simple_udp_packet(eth_dst='00:44:44:44:44:44',
eth_src='00:22:22:22:22:22',
dl_vlan_enable=True,
vlan_vid=0,
ip_ttl=64)
print("Sending priority tagged packet on trunk port %d to trunk, "
"dropped" % (self.dev_port1))
send_packet(self, self.dev_port1, pkt)
verify_no_other_packets(self, timeout=1)
pkt = simple_udp_packet(eth_dst='00:11:11:11:11:11',
eth_src='00:22:22:22:22:22',
dl_vlan_enable=True,
vlan_vid=0,
ip_ttl=64)
print("Sending priority tagged packet on trunk port %d to access, "
"dropped" % (self.dev_port1))
send_packet(self, self.dev_port1, pkt)
verify_no_other_packets(self, timeout=1)
# trunk port testing LAG
pkt = simple_udp_packet(eth_dst='00:44:44:44:44:44',
eth_src='00:66:66:66:66:66',
dl_vlan_enable=True,
vlan_vid=0,
ip_ttl=64)
print("Sending priority tagged packet on trunk lag2 to trunk, "
"dropped")
send_packet(self, self.dev_port7, pkt)
verify_no_other_packets(self, timeout=1)
pkt = simple_udp_packet(eth_dst='00:11:11:11:11:11',
eth_src='00:66:66:66:66:66',
dl_vlan_enable=True,
vlan_vid=0,
ip_ttl=64)
print("Sending priority tagged packet on trunk lag2 to access, "
"dropped")
send_packet(self, self.dev_port7, pkt)
verify_no_other_packets(self, timeout=1)
print("Update native vlan of trunk lag2 with vlan 20")
sai_thrift_set_lag_attribute(
self.client, self.lag2, port_vlan_id=20)
print("Update native vlan of trunk port %d with vlan 10" % (
self.dev_port1))
sai_thrift_set_port_attribute(
self.client, self.port1, port_vlan_id=10)
pkt = simple_udp_packet(eth_dst='00:44:44:44:44:44',
eth_src='00:22:22:22:22:22',
dl_vlan_enable=True,
vlan_vid=0,
ip_ttl=64)
exp_pkt = simple_udp_packet(eth_dst='00:44:44:44:44:44',
eth_src='00:22:22:22:22:22',
dl_vlan_enable=True,
vlan_vid=10,
ip_ttl=64)
print("Sending priority tagged packet on trunk port %d -> "
"trunk port %d" % (self.dev_port1, self.dev_port25))
send_packet(self, self.dev_port1, pkt)
verify_packet(self, exp_pkt, self.dev_port25)
self.i_pkt_count += 1
self.e_pkt_count += 1
pkt = simple_udp_packet(eth_dst='00:77:77:77:77:77',
eth_src='00:66:66:66:66:66',
dl_vlan_enable=True,
vlan_vid=0,
ip_ttl=64)
exp_pkt = simple_udp_packet(eth_dst='00:77:77:77:77:77',
eth_src='00:66:66:66:66:66',
dl_vlan_enable=True,
vlan_vid=20,
ip_ttl=64)
print("Sending priority tagged packet on trunk lag2 -> "
"trunk port %d" % (self.dev_port26))
send_packet(self, self.dev_port7, pkt)
verify_packet(self, exp_pkt, self.dev_port26)
pkt = simple_udp_packet(eth_dst='00:11:11:11:11:11',
eth_src='00:22:22:22:22:22',
dl_vlan_enable=True,
vlan_vid=0,
ip_ttl=64,
pktlen=104)
exp_pkt = simple_udp_packet(eth_dst='00:11:11:11:11:11',
eth_src='00:22:22:22:22:22',
ip_ttl=64,
pktlen=100)
print("Sending priority tagged packet on trunk port %d -> "
"access port %d" % (self.dev_port1, self.dev_port0))
send_packet(self, self.dev_port1, pkt)
verify_packet(self, exp_pkt, self.dev_port0)
self.i_pkt_count += 1
self.e_pkt_count += 1
pkt = simple_udp_packet(eth_dst='00:88:88:88:88:88',
eth_src='00:66:66:66:66:66',
dl_vlan_enable=True,
vlan_vid=0,
ip_ttl=64,
pktlen=104)
exp_pkt = simple_udp_packet(eth_dst='00:88:88:88:88:88',
eth_src='00:66:66:66:66:66',
ip_ttl=64,
pktlen=100)
print("Sending priority tagged packet on trunk lag2 -> "
"access port %d" % (self.dev_port27))
send_packet(self, self.dev_port7, pkt)
verify_packet(self, exp_pkt, self.dev_port27)
finally:
sai_thrift_set_port_attribute(
self.client, self.port1, port_vlan_id=1)
sai_thrift_set_lag_attribute(
self.client, self.lag2, port_vlan_id=1)
sai_thrift_remove_fdb_entry(self.client, fdb_entry1)
sai_thrift_remove_fdb_entry(self.client, fdb_entry2)
sai_thrift_remove_fdb_entry(self.client, fdb_entry3)
sai_thrift_remove_fdb_entry(self.client, fdb_entry4)
sai_thrift_remove_vlan_member(self.client, vlan_member1)
sai_thrift_remove_vlan_member(self.client, vlan_member2)