in ptf/saiacl.py [0:0]
def runTest(self):
# setup ACL table groups
ipv4_addr_src1 = "20.0.0.1"
ipv4_addr_src2 = "20.0.0.3"
ipv4_mask = "255.255.255.255"
ipv6_mask = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"
ipv6_addr_src = '2000::1'
group_stage_ingress = SAI_ACL_STAGE_INGRESS
group_stage_egress = SAI_ACL_STAGE_EGRESS
group_bind_point_list = [SAI_ACL_BIND_POINT_TYPE_PORT]
group_type = SAI_ACL_TABLE_GROUP_TYPE_PARALLEL
table_stage_ingress = SAI_ACL_STAGE_INGRESS
table_stage_egress = SAI_ACL_STAGE_EGRESS
group_bind_point_type_list = sai_thrift_s32_list_t(
count=len(group_bind_point_list), int32list=group_bind_point_list)
print("Create ACL tables groups")
acl_group_ingress = sai_thrift_create_acl_table_group(
self.client,
acl_stage=group_stage_ingress,
acl_bind_point_type_list=group_bind_point_type_list,
type=group_type)
table_bind_point_list = [SAI_ACL_BIND_POINT_TYPE_PORT]
table_bind_point_type_list = sai_thrift_s32_list_t(
count=len(table_bind_point_list), int32list=table_bind_point_list)
packet_action = sai_thrift_acl_action_data_t(
parameter=sai_thrift_acl_action_parameter_t(
s32=SAI_PACKET_ACTION_DROP))
print("Create ACL field data")
src_ip_t_ipv4 = sai_thrift_acl_field_data_t(
data=sai_thrift_acl_field_data_data_t(ip4=ipv4_addr_src1),
mask=sai_thrift_acl_field_data_mask_t(ip4=ipv4_mask))
src_ip_t_ipv6 = sai_thrift_acl_field_data_t(
data=sai_thrift_acl_field_data_data_t(ip6=ipv6_addr_src),
mask=sai_thrift_acl_field_data_mask_t(
ip6=ipv6_mask))
src_ip_t_mirror = sai_thrift_acl_field_data_t(
data=sai_thrift_acl_field_data_data_t(ip4=ipv4_addr_src2),
mask=sai_thrift_acl_field_data_mask_t(ip4=ipv4_mask))
# create ACL tables
print("Create ACL tables")
acl_ingress_ipv4_table_id = sai_thrift_create_acl_table(
self.client,
acl_stage=table_stage_ingress,
acl_bind_point_type_list=table_bind_point_type_list,
field_src_ip=True)
acl_ingress_ipv6_table_id = sai_thrift_create_acl_table(
self.client,
acl_stage=table_stage_ingress,
acl_bind_point_type_list=table_bind_point_type_list,
field_src_ipv6=True)
# create ACL table group members
print("Create ACL group members")
acl_group_ingress_ipv4_member_id = \
sai_thrift_create_acl_table_group_member(
self.client,
acl_table_group_id=acl_group_ingress,
acl_table_id=acl_ingress_ipv4_table_id)
acl_group_ingress_ipv6_member_id = \
sai_thrift_create_acl_table_group_member(
self.client,
acl_table_group_id=acl_group_ingress,
acl_table_id=acl_ingress_ipv6_table_id)
# create ACL entries
print("Create ACL entries")
ipv4_acl_ingress_entry_id = sai_thrift_create_acl_entry(
self.client,
table_id=acl_ingress_ipv4_table_id,
priority=9999,
field_src_ip=src_ip_t_ipv4,
action_packet_action=packet_action)
ipv6_acl_ingress_entry_id = sai_thrift_create_acl_entry(
self.client,
table_id=acl_ingress_ipv6_table_id,
priority=9998,
field_src_ipv6=src_ip_t_ipv6,
action_packet_action=packet_action)
mirror_acl_ingress_entry_id = sai_thrift_create_acl_entry(
self.client,
table_id=acl_ingress_ipv4_table_id,
priority=9997,
field_src_ip=src_ip_t_mirror,
action_packet_action=packet_action)
# create ACL counter
acl_counter_ingress_ipv4 = sai_thrift_create_acl_counter(
self.client, table_id=acl_ingress_ipv4_table_id)
# attach ACL counter to ACL entry
action_counter_ingress_ipv4 = sai_thrift_acl_action_data_t(
parameter=sai_thrift_acl_action_parameter_t(
oid=acl_counter_ingress_ipv4),
enable=True)
sai_thrift_set_acl_entry_attribute(
self.client, ipv4_acl_ingress_entry_id,
action_counter=action_counter_ingress_ipv4)
# create ACL counter
acl_counter_ingress_ipv6 = sai_thrift_create_acl_counter(
self.client, table_id=acl_ingress_ipv6_table_id)
# attach ACL counter to ACL entry
action_counter_ingress_ipv6 = sai_thrift_acl_action_data_t(
parameter=sai_thrift_acl_action_parameter_t(
oid=acl_counter_ingress_ipv6),
enable=True)
sai_thrift_set_acl_entry_attribute(
self.client, ipv6_acl_ingress_entry_id,
action_counter=action_counter_ingress_ipv6)
# create ACL counter
acl_counter_ingress_mirror = sai_thrift_create_acl_counter(
self.client, table_id=acl_ingress_ipv4_table_id)
# attach ACL counter to ACL entry
action_counter_ingress_mirror = sai_thrift_acl_action_data_t(
parameter=sai_thrift_acl_action_parameter_t(
oid=acl_counter_ingress_mirror),
enable=True)
sai_thrift_set_acl_entry_attribute(
self.client, mirror_acl_ingress_entry_id,
action_counter=action_counter_ingress_mirror)
try:
pkt = simple_tcp_packet(eth_dst=ROUTER_MAC,
eth_src=self.dmac,
ip_src=ipv4_addr_src1,
ip_dst=self.ipv4_addr,
tcp_sport=0x4321,
tcp_dport=0x51,
ip_ttl=64)
exp_pkt = simple_tcp_packet(eth_dst=self.dmac,
eth_src=ROUTER_MAC,
ip_src=ipv4_addr_src1,
ip_dst=self.ipv4_addr,
tcp_sport=0x4321,
tcp_dport=0x51,
ip_ttl=63)
print('#### Sending ', ROUTER_MAC, '| 00:22:22:22:22:22 | '
'20.0.0.1 | 192.168.0.1 | @ ptf_intf 2')
send_packet(self, self.dev_port11, pkt)
print('#### Expecting ', self.dmac, ' | ', ROUTER_MAC, '| 20.0.0.1'
' | 192.168.0.1 | @ ptf_intf 1')
verify_packets(self, exp_pkt, [self.dev_port10])
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_ipv4, packets=True)
self.assertEqual(packets['packets'], 0)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_ipv6, packets=True)
self.assertEqual(packets['packets'], 0)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_mirror, packets=True)
self.assertEqual(packets['packets'], 0)
pktv6 = simple_tcpv6_packet(eth_dst=ROUTER_MAC,
eth_src=self.dmac,
ipv6_dst=self.ipv6_addr,
ipv6_src=ipv6_addr_src,
ipv6_hlim=64)
exp_pktv6 = simple_tcpv6_packet(eth_dst=self.dmac,
eth_src=ROUTER_MAC,
ipv6_dst=self.ipv6_addr,
ipv6_src=ipv6_addr_src,
ipv6_hlim=63)
print('#### Sending ', ROUTER_MAC, '| 00:22:22:22:22:22 | 4000::1'
' | 2000::1 | @ ptf_intf 2')
send_packet(self, self.dev_port11, pktv6)
print('#### Expecting ', self.dmac, ' | ', ROUTER_MAC, '| 4000::1'
' | 2000::1 | @ ptf_intf 1')
verify_packets(self, exp_pktv6, [self.dev_port10])
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_ipv4, packets=True)
self.assertEqual(packets['packets'], 0)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_ipv6, packets=True)
self.assertEqual(packets['packets'], 0)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_mirror, packets=True)
self.assertEqual(packets['packets'], 0)
pkt2 = simple_tcp_packet(eth_dst=ROUTER_MAC,
eth_src=self.dmac,
ip_src=ipv4_addr_src2,
ip_dst=self.ipv4_addr,
tcp_sport=0x4321,
tcp_dport=0x51,
ip_ttl=64)
exp_pkt2 = simple_tcp_packet(eth_dst=self.dmac,
eth_src=ROUTER_MAC,
ip_src=ipv4_addr_src2,
ip_dst=self.ipv4_addr,
tcp_sport=0x4321,
tcp_dport=0x51,
ip_ttl=63)
print('#### Sending ', ROUTER_MAC, '| 00:22:22:22:22:22 | '
'20.0.0.3 | 192.168.0.1 | @ ptf_intf 2')
send_packet(self, self.dev_port11, pkt2)
print('#### Expecting ', self.dmac, ' | ', ROUTER_MAC, '| 20.0.0.3'
' | 192.168.0.1 | @ ptf_intf 1')
verify_packets(self, exp_pkt2, [self.dev_port10])
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_ipv4, packets=True)
self.assertEqual(packets['packets'], 0)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_ipv6, packets=True)
self.assertEqual(packets['packets'], 0)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_mirror, packets=True)
self.assertEqual(packets['packets'], 0)
# bind ACL group to port and verify ACLs work
sai_thrift_set_port_attribute(
self.client, self.port11, ingress_acl=acl_group_ingress)
print('#### Sending ', ROUTER_MAC, '| 00:22:22:22:22:22 | '
'20.0.0.1 | 192.168.0.1 | @ ptf_intf 2')
send_packet(self, self.dev_port11, pkt)
print('#### NOT Expecting ', self.dmac, ' | ', ROUTER_MAC, '| '
'20.0.0.1 | 192.168.0.1 | @ ptf_intf 1')
verify_no_other_packets(self, timeout=2)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_ipv4, packets=True)
self.assertEqual(packets['packets'], 1)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_ipv6, packets=True)
self.assertEqual(packets['packets'], 0)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_mirror, packets=True)
self.assertEqual(packets['packets'], 0)
print('#### Sending ', ROUTER_MAC, '| 00:22:22:22:22:22 | 4000::1'
' | 2000::1 | @ ptf_intf 2')
send_packet(self, self.dev_port11, pktv6)
print('#### NOT Expecting ', self.dmac, ' | ', ROUTER_MAC, '| '
'4000::1 | 2000::1 | @ ptf_intf 1')
verify_no_other_packets(self, timeout=2)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_ipv4, packets=True)
self.assertEqual(packets['packets'], 1)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_ipv6, packets=True)
self.assertEqual(packets['packets'], 1)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_mirror, packets=True)
self.assertEqual(packets['packets'], 0)
# unbind ACL group from port - ACLs sholdn't have any effect
sai_thrift_set_port_attribute(
self.client, self.port11, ingress_acl=int(SAI_NULL_OBJECT_ID))
print('#### Sending ', ROUTER_MAC, '| 00:22:22:22:22:22 | '
'20.0.0.1 | 192.168.0.1 | @ ptf_intf 2')
send_packet(self, self.dev_port11, pkt)
print('#### Expecting ', self.dmac, ' | ', ROUTER_MAC, '| 20.0.0.1'
' | 192.168.0.1 | @ ptf_intf 1')
verify_packets(self, exp_pkt, [self.dev_port10])
print('#### Sending ', ROUTER_MAC, '| 00:22:22:22:22:22 | 4000::1'
' | 2000::1 | @ ptf_intf 2')
send_packet(self, self.dev_port11, pktv6)
print('#### Expecting ', self.dmac, ' | ', ROUTER_MAC, '| 4000::1'
' | 2000::1 | @ ptf_intf 1')
verify_packets(self, exp_pktv6, [self.dev_port10])
print('#### Sending ', ROUTER_MAC, '| 00:22:22:22:22:22 | '
'20.0.0.3 | 192.168.0.1 | @ ptf_intf 2')
send_packet(self, self.dev_port11, pkt2)
print('#### Expecting ', self.dmac, ' | ', ROUTER_MAC, '| 20.0.0.3'
' | 192.168.0.1 | @ ptf_intf 1')
verify_packets(self, exp_pkt2, [self.dev_port10])
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_ipv4, packets=True)
self.assertEqual(packets['packets'], 1)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_ipv6, packets=True)
self.assertEqual(packets['packets'], 1)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_mirror, packets=True)
self.assertEqual(packets['packets'], 0)
# cleanup ACL
action_counter_ingress_ipv4 = sai_thrift_acl_action_data_t(
parameter=sai_thrift_acl_action_parameter_t(
oid=0),
enable=True)
sai_thrift_set_acl_entry_attribute(
self.client, ipv4_acl_ingress_entry_id,
action_counter=action_counter_ingress_ipv4)
sai_thrift_set_acl_counter_attribute(
self.client, acl_counter_ingress_ipv4, packets=None)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_ipv4, packets=True)
self.assertEqual(packets['packets'], 0)
sai_thrift_remove_acl_counter(
self.client, acl_counter_ingress_ipv4)
action_counter_ingress_ipv6 = sai_thrift_acl_action_data_t(
parameter=sai_thrift_acl_action_parameter_t(
oid=0),
enable=True)
sai_thrift_set_acl_entry_attribute(
self.client, ipv6_acl_ingress_entry_id,
action_counter=action_counter_ingress_ipv6)
sai_thrift_set_acl_counter_attribute(
self.client, acl_counter_ingress_ipv6, packets=None)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_ipv6, packets=True)
self.assertEqual(packets['packets'], 0)
sai_thrift_remove_acl_counter(
self.client, acl_counter_ingress_ipv6)
action_counter_ingress_mirror = sai_thrift_acl_action_data_t(
parameter=sai_thrift_acl_action_parameter_t(
oid=0),
enable=True)
sai_thrift_set_acl_entry_attribute(
self.client, mirror_acl_ingress_entry_id,
action_counter=action_counter_ingress_mirror)
sai_thrift_set_acl_counter_attribute(
self.client, acl_counter_ingress_mirror, packets=None)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_ingress_mirror, packets=True)
self.assertEqual(packets['packets'], 0)
sai_thrift_remove_acl_counter(
self.client, acl_counter_ingress_mirror)
sai_thrift_remove_acl_table_group_member(
self.client, acl_group_ingress_ipv4_member_id)
sai_thrift_remove_acl_table_group_member(
self.client, acl_group_ingress_ipv6_member_id)
sai_thrift_remove_acl_table_group(self.client, acl_group_ingress)
sai_thrift_remove_acl_entry(self.client, ipv4_acl_ingress_entry_id)
sai_thrift_remove_acl_entry(self.client, ipv6_acl_ingress_entry_id)
sai_thrift_remove_acl_entry(self.client,
mirror_acl_ingress_entry_id)
sai_thrift_remove_acl_table(self.client, acl_ingress_ipv4_table_id)
sai_thrift_remove_acl_table(self.client, acl_ingress_ipv6_table_id)
print("Create ACL tables groups")
acl_group_egress = sai_thrift_create_acl_table_group(
self.client,
acl_stage=group_stage_egress,
acl_bind_point_type_list=group_bind_point_type_list,
type=group_type)
# create ACL tables
print("Create ACL tables")
acl_egress_ipv4_table_id = sai_thrift_create_acl_table(
self.client,
acl_stage=table_stage_egress,
acl_bind_point_type_list=table_bind_point_type_list,
field_src_ip=True)
acl_egress_ipv6_table_id = sai_thrift_create_acl_table(
self.client,
acl_stage=table_stage_egress,
acl_bind_point_type_list=table_bind_point_type_list,
field_src_ipv6=True)
# create ACL table group members
print("Create ACL group members")
acl_group_egress_ipv4_member_id = \
sai_thrift_create_acl_table_group_member(
self.client,
acl_table_group_id=acl_group_egress,
acl_table_id=acl_egress_ipv4_table_id)
acl_group_egress_ipv6_member_id = \
sai_thrift_create_acl_table_group_member(
self.client,
acl_table_group_id=acl_group_egress,
acl_table_id=acl_egress_ipv6_table_id)
# create ACL entries
print("Create ACL entries")
ipv4_acl_egress_entry_id = sai_thrift_create_acl_entry(
self.client,
table_id=acl_egress_ipv4_table_id,
priority=9999,
field_src_ip=src_ip_t_ipv4,
action_packet_action=packet_action)
ipv6_acl_egress_entry_id = sai_thrift_create_acl_entry(
self.client,
table_id=acl_egress_ipv6_table_id,
priority=9998,
field_src_ipv6=src_ip_t_ipv6,
action_packet_action=packet_action)
mirror_acl_egress_entry_id = sai_thrift_create_acl_entry(
self.client,
table_id=acl_egress_ipv4_table_id,
priority=9997,
field_src_ip=src_ip_t_mirror,
action_packet_action=packet_action)
# create ACL counter
acl_counter_egress_ipv4 = sai_thrift_create_acl_counter(
self.client, table_id=acl_egress_ipv4_table_id)
# attach ACL counter to ACL entry
action_counter_egress_ipv4 = sai_thrift_acl_action_data_t(
parameter=sai_thrift_acl_action_parameter_t(
oid=acl_counter_egress_ipv4),
enable=True)
sai_thrift_set_acl_entry_attribute(
self.client, ipv4_acl_egress_entry_id,
action_counter=action_counter_egress_ipv4)
# create ACL counter
acl_counter_egress_ipv6 = sai_thrift_create_acl_counter(
self.client, table_id=acl_egress_ipv6_table_id)
# attach ACL counter to ACL entry
action_counter_egress_ipv6 = sai_thrift_acl_action_data_t(
parameter=sai_thrift_acl_action_parameter_t(
oid=acl_counter_egress_ipv6),
enable=True)
sai_thrift_set_acl_entry_attribute(
self.client, ipv6_acl_egress_entry_id,
action_counter=action_counter_egress_ipv6)
# create ACL counter
acl_counter_egress_mirror = sai_thrift_create_acl_counter(
self.client, table_id=acl_egress_ipv4_table_id)
# attach ACL counter to ACL entry
action_counter_egress_mirror = sai_thrift_acl_action_data_t(
parameter=sai_thrift_acl_action_parameter_t(
oid=acl_counter_egress_mirror),
enable=True)
sai_thrift_set_acl_entry_attribute(
self.client, mirror_acl_egress_entry_id,
action_counter=action_counter_egress_mirror)
print('#### Sending ', ROUTER_MAC, '| 00:22:22:22:22:22 | '
'20.0.0.1 | 192.168.0.1 | @ ptf_intf 2')
send_packet(self, self.dev_port11, pkt)
print('#### Expecting ', self.dmac, ' | ', ROUTER_MAC, '| 20.0.0.1'
' | 192.168.0.1 | @ ptf_intf 1')
verify_packets(self, exp_pkt, [self.dev_port10])
print('#### Sending ', ROUTER_MAC, '| 00:22:22:22:22:22 | 4000::1'
' | 2000::1 | @ ptf_intf 2')
send_packet(self, self.dev_port11, pktv6)
print('#### Expecting ', self.dmac, ' | ', ROUTER_MAC, '| 4000::1'
' | 2000::1 | @ ptf_intf 1')
verify_packets(self, exp_pktv6, [self.dev_port10])
print('#### Sending ', ROUTER_MAC, '| 00:22:22:22:22:22 | '
'20.0.0.3 | 192.168.0.1 | @ ptf_intf 2')
send_packet(self, self.dev_port11, pkt2)
print('#### Expecting ', self.dmac, ' | ', ROUTER_MAC, '| 20.0.0.3'
' | 192.168.0.1 | @ ptf_intf 1')
verify_packets(self, exp_pkt2, [self.dev_port10])
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_egress_ipv4, packets=True)
self.assertEqual(packets['packets'], 0)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_egress_ipv6, packets=True)
self.assertEqual(packets['packets'], 0)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_egress_mirror, packets=True)
self.assertEqual(packets['packets'], 0)
# bind ACL group to port and verify ACLs work
sai_thrift_set_port_attribute(
self.client, self.port10, egress_acl=acl_group_egress)
print('#### Sending ', ROUTER_MAC, '| 00:22:22:22:22:22 | '
'20.0.0.1 | 192.168.0.1 | @ ptf_intf 2')
send_packet(self, self.dev_port11, pkt)
print('#### NOT Expecting ', self.dmac, ' | ', ROUTER_MAC, '| '
'20.0.0.1 | 192.168.0.1 | @ ptf_intf 1')
verify_no_other_packets(self, timeout=2)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_egress_ipv4, packets=True)
self.assertEqual(packets['packets'], 1)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_egress_ipv6, packets=True)
self.assertEqual(packets['packets'], 0)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_egress_mirror, packets=True)
self.assertEqual(packets['packets'], 0)
print('#### Sending ', ROUTER_MAC, '| 00:22:22:22:22:22 | 4000::1'
' | 2000::1 | @ ptf_intf 2')
send_packet(self, self.dev_port11, pktv6)
print('#### NOT Expecting ', self.dmac, ' | ', ROUTER_MAC, '| '
'4000::1 | 2000::1 | @ ptf_intf 1')
verify_no_other_packets(self, timeout=2)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_egress_ipv4, packets=True)
self.assertEqual(packets['packets'], 1)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_egress_ipv6, packets=True)
self.assertEqual(packets['packets'], 1)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_egress_mirror, packets=True)
self.assertEqual(packets['packets'], 0)
# unbind ACL group from port - ACLs sholdn't have any effect
sai_thrift_set_port_attribute(
self.client, self.port10, egress_acl=int(SAI_NULL_OBJECT_ID))
print('#### Sending ', ROUTER_MAC, '| 00:22:22:22:22:22 | '
'20.0.0.1 | 192.168.0.1 | @ ptf_intf 2')
send_packet(self, self.dev_port11, pkt)
print('#### Expecting ', self.dmac, ' | ', ROUTER_MAC, '| 20.0.0.1'
' | 192.168.0.1 | @ ptf_intf 1')
verify_packets(self, exp_pkt, [self.dev_port10])
print('#### Sending ', ROUTER_MAC, '| 00:22:22:22:22:22 | 4000::1'
' | 2000::1 | @ ptf_intf 2')
send_packet(self, self.dev_port11, pktv6)
print('#### Expecting ', self.dmac, ' | ', ROUTER_MAC, '| 4000::1'
' | 2000::1 | @ ptf_intf 1')
verify_packets(self, exp_pktv6, [self.dev_port10])
print('#### Sending ', ROUTER_MAC, '| 00:22:22:22:22:22 | '
'20.0.0.3 | 192.168.0.1 | @ ptf_intf 2')
send_packet(self, self.dev_port11, pkt2)
print('#### Expecting ', self.dmac, ' | ', ROUTER_MAC, '| 20.0.0.3'
' | 192.168.0.1 | @ ptf_intf 1')
verify_packets(self, exp_pkt2, [self.dev_port10])
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_egress_ipv4, packets=True)
self.assertEqual(packets['packets'], 1)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_egress_ipv6, packets=True)
self.assertEqual(packets['packets'], 1)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_egress_mirror, packets=True)
self.assertEqual(packets['packets'], 0)
finally:
# cleanup ACL
action_counter_egress_ipv4 = sai_thrift_acl_action_data_t(
parameter=sai_thrift_acl_action_parameter_t(
oid=0),
enable=True)
sai_thrift_set_acl_entry_attribute(
self.client, ipv4_acl_egress_entry_id,
action_counter=action_counter_egress_ipv4)
sai_thrift_set_acl_counter_attribute(
self.client, acl_counter_egress_ipv4, packets=None)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_egress_ipv4, packets=True)
self.assertEqual(packets['packets'], 0)
sai_thrift_remove_acl_counter(self.client, acl_counter_egress_ipv4)
action_counter_egress_ipv6 = sai_thrift_acl_action_data_t(
parameter=sai_thrift_acl_action_parameter_t(
oid=0),
enable=True)
sai_thrift_set_acl_entry_attribute(
self.client, ipv6_acl_egress_entry_id,
action_counter=action_counter_egress_ipv6)
sai_thrift_set_acl_counter_attribute(
self.client, acl_counter_egress_ipv6, packets=None)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_egress_ipv6, packets=True)
self.assertEqual(packets['packets'], 0)
sai_thrift_remove_acl_counter(self.client, acl_counter_egress_ipv6)
action_counter_egress_mirror = sai_thrift_acl_action_data_t(
parameter=sai_thrift_acl_action_parameter_t(
oid=0),
enable=True)
sai_thrift_set_acl_entry_attribute(
self.client, mirror_acl_egress_entry_id,
action_counter=action_counter_egress_mirror)
sai_thrift_set_acl_counter_attribute(
self.client, acl_counter_egress_mirror, packets=None)
packets = sai_thrift_get_acl_counter_attribute(
self.client, acl_counter_egress_mirror, packets=True)
self.assertEqual(packets['packets'], 0)
sai_thrift_remove_acl_counter(
self.client, acl_counter_egress_mirror)
sai_thrift_remove_acl_table_group_member(
self.client, acl_group_egress_ipv4_member_id)
sai_thrift_remove_acl_table_group_member(
self.client, acl_group_egress_ipv6_member_id)
sai_thrift_remove_acl_table_group(self.client, acl_group_egress)
sai_thrift_remove_acl_entry(self.client, ipv4_acl_egress_entry_id)
sai_thrift_remove_acl_entry(self.client, ipv6_acl_egress_entry_id)
sai_thrift_remove_acl_entry(self.client,
mirror_acl_egress_entry_id)
sai_thrift_remove_acl_table(self.client, acl_egress_ipv4_table_id)
sai_thrift_remove_acl_table(self.client, acl_egress_ipv6_table_id)