def setUp()

in ptf/saisrv6.py [0:0]


    def setUp(self):
        super(Srv6MySidTest, self).setUp()

        self.node0_prefix_sid = 'baba:1001:0:10::'
        self.node0_t_sid = 'baba:1001:0:10:f::'
        self.node0_dt46_sid1 = 'baba:1001:0:10:df46:1::'
        self.node0_dt46_sid2 = 'baba:1001:0:10:df46:2::'
        self.node0_dt4_sid = 'baba:1001:0:10:df4::'
        self.node0_dt6_sid = 'baba:1001:0:10:df6::'
        self.node0_adj_sid = 'baba:1001:0:10:ad::'
        self.node0_b6_encap_sid = 'baba:1001:0:10::100'
        self.node0_b6_insert_sid = 'baba:1001:0:10::200'
        self.node1_prefix_sid = 'baba:1001:0:20::'
        self.node2_prefix_sid = 'baba:1001:0:30::'
        self.sid_list = [self.node2_prefix_sid, self.node1_prefix_sid]

        self.srv6_mac = '00:aa:bb:cc:dd:ee'
        self.unbor_ip = '100.100.100.100'
        self.srv6_src_ip = '2001:1001:0:10::1'

        # overlay configuration
        self.client_ip_src = '10.10.10.10'
        self.client_ip_dest = '20.20.20.20'
        self.nbor_ip = '30.30.30.30'
        self.xconn_nbor_ip = '40.40.40.40'
        self.client_ipv6_src = '1100:1001::10'
        self.client_ipv6_dest = '1100:1001::20'
        self.client_smac = "00:11:11:11:11:11"
        self.client_dmac = '00:22:22:22:22:22'

        # client route
        self.ip_nhop = sai_thrift_create_next_hop(
            self.client,
            ip=sai_ipaddress(self.nbor_ip),
            router_interface_id=self.port10_rif,
            type=SAI_NEXT_HOP_TYPE_IP)

        self.ip_nbor = sai_thrift_neighbor_entry_t(
            rif_id=self.port10_rif,
            ip_address=sai_ipaddress(self.nbor_ip))
        sai_thrift_create_neighbor_entry(
            self.client, self.ip_nbor, dst_mac_address=self.client_dmac)

        self.ip_route = sai_thrift_route_entry_t(
            vr_id=self.default_vrf,
            destination=sai_ipprefix(self.client_ip_dest + '/32'))
        sai_thrift_create_route_entry(
            self.client, self.ip_route, next_hop_id=self.ip_nhop)

        self.ipv6_route = sai_thrift_route_entry_t(
            vr_id=self.default_vrf,
            destination=sai_ipprefix(self.client_ipv6_dest + '/128'))
        sai_thrift_create_route_entry(
            self.client, self.ipv6_route, next_hop_id=self.ip_nhop)

        self.urif_lb = sai_thrift_create_router_interface(
            self.client,
            type=SAI_ROUTER_INTERFACE_TYPE_LOOPBACK,
            virtual_router_id=self.default_vrf)

        self.sr_tunnel = sai_thrift_create_tunnel(
            self.client,
            type=SAI_TUNNEL_TYPE_SRV6,
            encap_src_ip=sai_ipaddress(self.srv6_src_ip),
            underlay_interface=self.urif_lb,
            encap_ttl_mode=SAI_TUNNEL_TTL_MODE_PIPE_MODEL,
            decap_ttl_mode=SAI_TUNNEL_TTL_MODE_PIPE_MODEL)

        self.und_nhop = sai_thrift_create_next_hop(
            self.client,
            type=SAI_NEXT_HOP_TYPE_IP,
            ip=sai_ipaddress(self.unbor_ip),
            router_interface_id=self.port12_rif)

        self.und_nbor = sai_thrift_neighbor_entry_t(
            rif_id=self.port12_rif, ip_address=sai_ipaddress(self.unbor_ip))
        sai_thrift_create_neighbor_entry(
            self.client, self.und_nbor, dst_mac_address=self.srv6_mac)

        self.tunnel_route1 = sai_thrift_route_entry_t(
            vr_id=self.default_vrf,
            destination=sai_ipprefix(self.node0_prefix_sid + '/64'))
        sai_thrift_create_route_entry(
            self.client, self.tunnel_route1, next_hop_id=self.und_nhop)

        self.tunnel_route2 = sai_thrift_route_entry_t(
            vr_id=self.default_vrf,
            destination=sai_ipprefix(self.node1_prefix_sid + '/64'))
        sai_thrift_create_route_entry(
            self.client, self.tunnel_route2, next_hop_id=self.und_nhop)

        self.tunnel_route3 = sai_thrift_route_entry_t(
            vr_id=self.default_vrf,
            destination=sai_ipprefix(self.node2_prefix_sid + '/64'))
        sai_thrift_create_route_entry(
            self.client, self.tunnel_route3, next_hop_id=self.und_nhop)

        self.t_vrf_id = sai_thrift_create_virtual_router(self.client)
        self.t_route = sai_thrift_route_entry_t(
            vr_id=self.t_vrf_id,
            destination=sai_ipprefix(self.node1_prefix_sid + '/80'))

        # port 13 cross-connect nhop
        self.xconn_nhop = sai_thrift_create_next_hop(
            self.client,
            type=SAI_NEXT_HOP_TYPE_IP,
            ip=sai_ipaddress(self.xconn_nbor_ip),
            router_interface_id=self.port13_rif)

        self.xconn_nbor = sai_thrift_neighbor_entry_t(
            rif_id=self.port13_rif,
            ip_address=sai_ipaddress(self.xconn_nbor_ip))
        sai_thrift_create_neighbor_entry(
            self.client, self.xconn_nbor, dst_mac_address=self.srv6_mac)

        self.end_sid_counter = sai_thrift_create_counter(self.client)
        self.end_sid_stats = 0

        # my_sid entries
        end_bf = SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USD
        # End SID
        self.end_sid = sai_thrift_my_sid_entry_t(
            sid=self.node0_prefix_sid, vr_id=self.default_vrf)
        sai_thrift_create_my_sid_entry(
            self.client,
            self.end_sid,
            endpoint_behavior=SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_E,
            endpoint_behavior_flavor=end_bf,
            counter_id=self.end_sid_counter)

        # End.T SID
        sai_thrift_create_route_entry(
            self.client, self.t_route, next_hop_id=self.und_nhop)
        self.end_t_sid = sai_thrift_my_sid_entry_t(
            sid=self.node0_t_sid, vr_id=self.default_vrf)
        sai_thrift_create_my_sid_entry(
            self.client,
            self.end_t_sid,
            endpoint_behavior=SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_T,
            vrf=self.t_vrf_id)

        # End.DT46 SIDs
        # default VRF
        self.end_dt46_sid1 = sai_thrift_my_sid_entry_t(
            sid=self.node0_dt46_sid1, vr_id=self.default_vrf)
        sai_thrift_create_my_sid_entry(
            self.client,
            self.end_dt46_sid1,
            vrf=self.default_vrf,
            endpoint_behavior=SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT46)
        # non-default VRF
        self.end_dt46_sid2 = sai_thrift_my_sid_entry_t(
            sid=self.node0_dt46_sid2, vr_id=self.default_vrf)
        sai_thrift_create_my_sid_entry(
            self.client,
            self.end_dt46_sid2,
            vrf=self.t_vrf_id,
            endpoint_behavior=SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT46)

        # End.DT4 SID with non-default VRF
        self.end_dt4_sid = sai_thrift_my_sid_entry_t(
            sid=self.node0_dt4_sid, vr_id=self.default_vrf)
        sai_thrift_create_my_sid_entry(
            self.client,
            self.end_dt4_sid,
            vrf=self.t_vrf_id,
            endpoint_behavior=SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT4)

        # End.DT6 SID with non-default VRF
        self.end_dt6_sid = sai_thrift_my_sid_entry_t(
            sid=self.node0_dt6_sid, vr_id=self.default_vrf)
        sai_thrift_create_my_sid_entry(
            self.client,
            self.end_dt6_sid,
            vrf=self.t_vrf_id,
            endpoint_behavior=SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT6)

        # End.X SID
        self.end_x_sid = sai_thrift_my_sid_entry_t(
            sid=self.node0_adj_sid, vr_id=self.default_vrf)
        sai_thrift_create_my_sid_entry(
            self.client,
            self.end_x_sid,
            vrf=self.default_vrf,
            endpoint_behavior=SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_X,
            next_hop_id=self.xconn_nhop)

        # End.B6.Encaps.Red SID config
        my_encap_sid_list = [self.node2_prefix_sid,
                             self.node1_prefix_sid,
                             self.node0_prefix_sid]
        sai_segment_list1 = sai_thrift_segment_list_t(
            count=2,
            ip6list=my_encap_sid_list[1:])
        self.sidlist1 = sai_thrift_create_srv6_sidlist(
            self.client,
            type=SAI_SRV6_SIDLIST_TYPE_ENCAPS_RED,
            segment_list=sai_segment_list1)

        sai_segment_list_2 = sai_thrift_segment_list_t(
            count=3,
            ip6list=my_encap_sid_list)
        self.sidlist2 = sai_thrift_create_srv6_sidlist(
            self.client,
            type=SAI_SRV6_SIDLIST_TYPE_ENCAPS_RED,
            segment_list=sai_segment_list_2)

        self.sr_nhop1 = sai_thrift_create_next_hop(
            self.client,
            type=SAI_NEXT_HOP_TYPE_SRV6_SIDLIST,
            srv6_sidlist_id=self.sidlist1,
            tunnel_id=self.sr_tunnel)

        self.sr_nhop2 = sai_thrift_create_next_hop(
            self.client,
            type=SAI_NEXT_HOP_TYPE_SRV6_SIDLIST,
            srv6_sidlist_id=self.sidlist2,
            tunnel_id=self.sr_tunnel)

        self.end_b6_encap_sid = sai_thrift_my_sid_entry_t(
            sid=self.node0_b6_encap_sid, vr_id=self.default_vrf)
        sai_thrift_create_my_sid_entry(
            self.client,
            self.end_b6_encap_sid,
            vrf=self.default_vrf,
            endpoint_behavior=SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_ENCAPS_RED,
            next_hop_id=self.sr_nhop1)

        # End.B6.Insert.Red SID config
        my_insert_sid_list = [self.node0_prefix_sid,
                              self.node1_prefix_sid]
        sai_segment_list3 = sai_thrift_segment_list_t(
            count=2,
            ip6list=my_insert_sid_list)
        self.sidlist3 = sai_thrift_create_srv6_sidlist(
            self.client,
            type=SAI_SRV6_SIDLIST_TYPE_INSERT_RED,
            segment_list=sai_segment_list3)

        self.sr_nhop3 = sai_thrift_create_next_hop(
            self.client,
            type=SAI_NEXT_HOP_TYPE_SRV6_SIDLIST,
            srv6_sidlist_id=self.sidlist3,
            tunnel_id=self.sr_tunnel)

        self.end_b6_insert_sid = sai_thrift_my_sid_entry_t(
            sid=self.node0_b6_insert_sid, vr_id=self.default_vrf)
        sai_thrift_create_my_sid_entry(
            self.client,
            self.end_b6_insert_sid,
            vrf=self.default_vrf,
            endpoint_behavior=SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_INSERT_RED,
            next_hop_id=self.sr_nhop3)

        # test packets
        self.inner_v4_pkt = simple_tcp_packet(eth_dst=ROUTER_MAC,
                                              eth_src='00:22:22:22:22:21',
                                              ip_dst=self.client_ip_dest,
                                              ip_src=self.client_ip_src,
                                              ip_id=105,
                                              ip_ttl=64)
        self.v4_exp_pkt = simple_tcp_packet(eth_src=ROUTER_MAC,
                                            eth_dst=self.client_dmac,
                                            ip_dst=self.client_ip_dest,
                                            ip_src=self.client_ip_src,
                                            ip_id=105,
                                            ip_ttl=63)
        self.inner_v6_pkt = simple_tcpv6_packet(eth_dst=ROUTER_MAC,
                                                eth_src='00:22:22:22:22:21',
                                                ipv6_dst=self.client_ipv6_dest,
                                                ipv6_src=self.client_ipv6_src,
                                                ipv6_hlim=64)
        self.v6_exp_pkt = simple_tcpv6_packet(eth_src=ROUTER_MAC,
                                              eth_dst=self.client_dmac,
                                              ipv6_dst=self.client_ipv6_dest,
                                              ipv6_src=self.client_ipv6_src,
                                              ipv6_hlim=63)