ptf/saimirror.py [1814:1893]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            type=SAI_MIRROR_SESSION_TYPE_ENHANCED_REMOTE,
            erspan_encapsulation_type=encap_type,
            iphdr_version=0x4,
            tos=0,
            src_ip_address=self.src_ip_addr,
            dst_ip_address=self.dst_ip_addr,
            src_mac_address="00:00:00:00:11:22",
            dst_mac_address="00:00:00:00:11:33",
            gre_protocol_type=0x22eb,
            ttl=64)

        obj_list = sai_thrift_object_list_t(count=1, idlist=[erspan_id])
        sai_thrift_set_port_attribute(self.client,
                                      self.port10,
                                      ingress_mirror_session=obj_list)
        try:
            pkt = simple_tcp_packet(eth_dst=ROUTER_MAC,
                                    eth_src="00:00:00:00:00:22",
                                    ip_src="192.168.0.1",
                                    ip_dst="172.16.1.1",
                                    ip_id=101,
                                    ip_ttl=64)

            exp_pkt = simple_tcp_packet(eth_dst=self.neighbor_dmac,
                                        eth_src=ROUTER_MAC,
                                        ip_src="192.168.0.1",
                                        ip_dst="172.16.1.1",
                                        ip_id=101,
                                        ip_ttl=63)
            exp_inner_pkt = simple_tcp_packet(eth_dst=ROUTER_MAC,
                                              eth_src="00:00:00:00:00:22",
                                              ip_src="192.168.0.1",
                                              ip_dst="172.16.1.1",
                                              ip_id=101,
                                              ip_ttl=64)
            exp_mirrored_pkt = ipv4_erspan_pkt(eth_src="00:00:00:00:11:22",
                                               eth_dst="00:00:00:00:11:33",
                                               ip_src="17.18.19.0",
                                               ip_dst="33.19.20.0",
                                               ip_id=0,
                                               ip_ttl=64,
                                               ip_flags=0x2,
                                               version=2,
                                               mirror_id=erspan_id,
                                               inner_frame=exp_inner_pkt)
            # IEEE 1588
            exp_mirrored_pkt["ERSPAN_III"].gra = 2

            exp_mask_mirrored_pkt = Mask(exp_mirrored_pkt)
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.IP, "tos")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.IP, "ihl")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.IP, "len")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.IP, "frag")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.IP, "ttl")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.IP, "flags")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.IP,
                                                        "chksum")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.GRE,
                                                        "proto")

            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "session_id")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "direction")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "timestamp")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "sgt_other")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "version")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "vlan")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "priority")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "truncated")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "unknown2")

            print("\tSending packet PORT10 -> PORT11")
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



ptf/saimirror.py [1926:2005]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            type=SAI_MIRROR_SESSION_TYPE_ENHANCED_REMOTE,
            erspan_encapsulation_type=encap_type,
            iphdr_version=0x4,
            tos=0,
            src_ip_address=self.src_ip_addr,
            dst_ip_address=self.dst_ip_addr,
            src_mac_address="00:00:00:00:11:22",
            dst_mac_address="00:00:00:00:11:33",
            gre_protocol_type=0x22eb,
            ttl=64)

        obj_list = sai_thrift_object_list_t(count=1, idlist=[erspan_id])
        sai_thrift_set_port_attribute(self.client,
                                      self.port10,
                                      ingress_mirror_session=obj_list)
        try:
            pkt = simple_tcp_packet(eth_dst=ROUTER_MAC,
                                    eth_src="00:00:00:00:00:22",
                                    ip_src="192.168.0.1",
                                    ip_dst="172.16.1.1",
                                    ip_id=101,
                                    ip_ttl=64)

            exp_pkt = simple_tcp_packet(eth_dst=self.neighbor_dmac,
                                        eth_src=ROUTER_MAC,
                                        ip_src="192.168.0.1",
                                        ip_dst="172.16.1.1",
                                        ip_id=101,
                                        ip_ttl=63)
            exp_inner_pkt = simple_tcp_packet(eth_dst=ROUTER_MAC,
                                              eth_src="00:00:00:00:00:22",
                                              ip_src="192.168.0.1",
                                              ip_dst="172.16.1.1",
                                              ip_id=101,
                                              ip_ttl=64)
            exp_mirrored_pkt = ipv4_erspan_pkt(eth_src="00:00:00:00:11:22",
                                               eth_dst="00:00:00:00:11:33",
                                               ip_src="17.18.19.0",
                                               ip_dst="33.19.20.0",
                                               ip_id=0,
                                               ip_ttl=64,
                                               ip_flags=0x2,
                                               version=2,
                                               mirror_id=erspan_id,
                                               inner_frame=exp_inner_pkt)
            # IEEE 1588
            exp_mirrored_pkt["ERSPAN_III"].gra = 2

            exp_mask_mirrored_pkt = Mask(exp_mirrored_pkt)
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.IP, "tos")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.IP, "ihl")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.IP, "len")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.IP, "frag")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.IP, "ttl")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.IP, "flags")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.IP,
                                                        "chksum")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.GRE,
                                                        "proto")

            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "session_id")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "direction")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "timestamp")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "sgt_other")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "version")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "vlan")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "priority")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "truncated")
            exp_mask_mirrored_pkt.set_do_not_care_scapy(ptf.packet.ERSPAN_III,
                                                        "unknown2")

            print("\tSending packet PORT10 -> PORT11")
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



