Esempio n. 1
0
def GetRSPANEncapFromVnic(testcase, inpkt, args=None):
    encaps = []
    vnic = testcase.config.localmapping.VNIC
    encap = infra_api.GetPacketTemplate(
        'ENCAP_QINQ'
    ) if vnic.VnicEncap.Type == "dot1q" else infra_api.GetPacketTemplate(
        'ENCAP_QTAG')
    encaps.append(encap)
    return encaps
Esempio n. 2
0
def GetPacketEncaps(testcase, packet):
    encaps = []
    if testcase.config.root.segment.native == False:
        encaps.append(infra_api.GetPacketTemplate('ENCAP_QTAG'))

    if testcase.config.root.segment.IsFabEncapVxlan():
        encaps.append(infra_api.GetPacketTemplate('ENCAP_VXLAN'))

    return encaps
Esempio n. 3
0
def GetDhcpSeverPacketEncaps(testcase, packet):
    encaps = []
    if testcase.pvtdata.dhcp_server.segment.native == False:
        encaps.append(infra_api.GetPacketTemplate('ENCAP_QTAG'))

    if testcase.pvtdata.dhcp_server.segment.IsFabEncapVxlan():
        encaps.append(infra_api.GetPacketTemplate('ENCAP_VXLAN'))

    return encaps
Esempio n. 4
0
def __get_packet_template_impl(obj, args):
    template = 'ETH'
    template += "_%s" % (obj.AddrFamily)

    if args is not None:
        template += "_%s" % (args.proto)
    return infra_api.GetPacketTemplate(template)
Esempio n. 5
0
def PickPktTemplate(tc, pkt, args=None):
    if tc.config.nvmesession.session.IsIPV6():
        template = args.v6
    else:
        template = args.v4
    logger.info("ChoosePacketTemplateByFlow: Picking %s" % (template))
    return infra_api.GetPacketTemplate(template)
Esempio n. 6
0
def __get_packet_encap_impl(obj, tunnel, args):
    if obj.IsEncapTypeVXLAN():
        encap = 'ENCAP_VXLAN'
    elif obj.IsEncapTypeMPLS():
        encap = __get_packet_encap_type_impl(tunnel, args)
    else:
        assert 0
    return infra_api.GetPacketTemplate(encap)
Esempio n. 7
0
def GetPacketTemplate(testcase, packet):
    acl = __get_acl_from_tc(testcase)
    if acl.MatchOnProto():
        if testcase.config.flow.IsIPV4():
            template = 'ETH_IPV4_PROTO_200'
        else:
            template = 'ETH_IPV6_PROTO_190'
        return infra_api.GetPacketTemplate(template)
    return networking.GetPacketTemplateByFlow(testcase, packet)
Esempio n. 8
0
def __get_packet_encap_impl_from_route(obj, tunnel, args):
    if obj.IsEncapTypeVXLAN():
        direction = __get_module_args_value(args, 'direction')
        if tunnel.Type is tunnel_pb2.TUNNEL_TYPE_SERVICE and \
            tunnel.Remote is True and direction == "remote2local":
            encap = 'ENCAP_VXLAN2'
        else:
            encap = 'ENCAP_VXLAN'
    else:
        assert 0
    return infra_api.GetPacketTemplate(encap)
Esempio n. 9
0
def __get_packet_template_impl(flow, pkttemplate):
    if pkttemplate is not None:
        template = pkttemplate
    else:
        template = 'ETH'
        if flow.IsIP():
            template += "_%s_%s" % (flow.type, flow.proto)
        else:
            assert (0)

    return infra_api.GetPacketTemplate(template)
Esempio n. 10
0
def __get_packet_template_from_policy_impl(rule, policy, protocol=None):
    if 'no-' not in policy.PolicyType:
        protocol = protocol if protocol else __get_proto_from_policy_rule(rule)
        template = 'ETH_%s_%s' % (policy.AddrFamily, protocol)
    else:
        if "no-tcp" in policy.PolicyType:
            template = 'ETH_%s_%s' % (policy.AddrFamily, 'TCP')
        elif 'no-udp' in policy.PolicyType:
            template = 'ETH_%s_%s' % (policy.AddrFamily, 'UDP')
        elif 'no-icmp' in policy.PolicyType:
            template = 'ETH_%s_%s' % (policy.AddrFamily, 'ICMP')
    return infra_api.GetPacketTemplate(template)
Esempio n. 11
0
def __get_packet_template_impl(flow, args):
    template = 'ETH'
    if flow.IsIP():
        template += "_%s_%s" % (flow.type, flow.proto)
    elif flow.IsMulticast():
        template += "_%s_UDP" % (flow.GetMulticastL3Type())
    elif flow.IsMAC():
        template = 'ETH'
    else:
        assert (0)

    if args is not None:
        template += "_%s" % (args.proto)
    return infra_api.GetPacketTemplate(template)
Esempio n. 12
0
def __get_packet_template_impl(obj, tsargs=None, modargs=None):
    af = obj.AddrFamily
    template = 'ETH'
    template += "_%s" % (af)
    proto = None

    # testspec args takes precedence over module args
    if tsargs is not None:
        proto = tsargs.proto
    elif modargs is not None:
        proto = __get_module_args_value(modargs, 'proto')
    else:
        assert (0)

    if af == "IPV6" and proto == "icmp":
        proto = "icmpv6"
    template += "_%s" % (proto)
    return infra_api.GetPacketTemplate(template)
Esempio n. 13
0
def __get_host_packet_encap_impl(vnic):
    encapId = encapType2Id(vnic.VnicEncap.Type)
    if not encapId:
        return []
    return [infra_api.GetPacketTemplate(encapId)]
Esempio n. 14
0
def __get_host_packet_encap_impl(vnic):
    encaps = []
    if vnic.IsEncapTypeVLAN():
        vlan_encap = infra_api.GetPacketTemplate('ENCAP_QTAG')
        encaps.append(vlan_encap)
    return encaps
Esempio n. 15
0
def __get_mapping_packet_encap_impl(dev, lmap, args):
    if dev.IsEncapTypeVXLAN():
        encap = 'ENCAP_VXLAN_IPV6' if lmap.TunFamily == 'IPV6' else 'ENCAP_VXLAN'
    else:
        assert 0
    return infra_api.GetPacketTemplate(encap)
Esempio n. 16
0
def __get_packet_template_from_policy_impl(rule, policy):
    protocol = __get_proto_from_policy_rule(rule)
    template = 'ETH_%s_%s' % (policy.AddrFamily, protocol)
    return infra_api.GetPacketTemplate(template)
Esempio n. 17
0
def GetPacketEncaps(testcase, packet):
    encaps = []
    encaps.append(infra_api.GetPacketTemplate('ENCAP_QTAG'))

    return encaps
Esempio n. 18
0
def __get_template(tid):
    if tid == None: return None
    return infra_api.GetPacketTemplate(tid)