示例#1
0
def expPkt(pkt, src_ind, dst_ind, src_known, dst_known):
    pktsExpected.append(pkt)
    # If dst MAC address is unknown, broadcast with src port pruning
    if dst_known:
        sss_sdnet_tuples.sume_tuple_expect['dst_port'] = portMap[dst_ind]
        nf_expected[dst_ind].append(pkt)
    else:
        sss_sdnet_tuples.sume_tuple_expect['dst_port'] = bcast_portMap[src_ind]
        for ind in [0, 1, 2, 3]:
            if ind != src_ind:
                nf_expected[ind].append(pkt)

    # If src MAC address is unknown, send over DMA
    if not src_known:
        sss_sdnet_tuples.sume_tuple_expect[
            'dst_port'] = sss_sdnet_tuples.sume_tuple_expect['dst_port']
        src_port = portMap[src_ind]
        eth_src_addr = int(pkt[Ether].src.replace(':', ''), 16)
        digest_pkt = pad_pkt(
            Digest_data(src_port=src_port, eth_src_addr=eth_src_addr),
            10)  # pad to 10 bytes (80 bits)
        dma0_expected.append(digest_pkt)
        sss_sdnet_tuples.sume_tuple_expect['send_dig_to_cpu'] = 1
        sss_sdnet_tuples.dig_tuple_expect['src_port'] = src_port
        sss_sdnet_tuples.dig_tuple_expect['eth_src_addr'] = eth_src_addr
    else:
        sss_sdnet_tuples.sume_tuple_expect['send_dig_to_cpu'] = 0
        sss_sdnet_tuples.dig_tuple_expect['src_port'] = 0
        sss_sdnet_tuples.dig_tuple_expect['eth_src_addr'] = 0

    sss_sdnet_tuples.write_tuples()
示例#2
0
def expPkt(pkt, egress):
    pktsExpected.append(pkt)
    sss_sdnet_tuples.sume_tuple_expect['dst_port'] = nf_port_map[egress]
    sss_sdnet_tuples.write_tuples()
    if egress in ["nf0", "nf1", "nf2", "nf3"]:
        nf_expected[nf_id_map[egress]].append(pkt)
    elif egress == 'bcast':
        nf_expected[0].append(pkt)
        nf_expected[1].append(pkt)
        nf_expected[2].append(pkt)
        nf_expected[3].append(pkt)
示例#3
0
def expPkt(pkt, pkt_SUME, egress, drop):
    pktsExpected.append(pkt)
    sss_sdnet_tuples.sume_tuple_expect['dst_port'] = nf_port_map[egress]
    sss_sdnet_tuples.sume_tuple_expect['drop'] = drop
    sss_sdnet_tuples.write_tuples()
    if egress in ["nf0", "nf1", "nf2", "nf3"] and drop == False:
        nf_expected[nf_id_map[egress]].append(pkt_SUME)
    elif egress == 'bcast' and drop == False:
        nf_expected[0].append(pkt_SUME)
        nf_expected[1].append(pkt_SUME)
        nf_expected[2].append(pkt_SUME)
        nf_expected[3].append(pkt_SUME)
    elif egress == 'dma_nf3':
        dma3_expected.append(pkt_SUME)
示例#4
0
def expPkt(pkt, egress, drop, **kwargs):
    pktsExpected.append(pkt)
    sss_sdnet_tuples.sume_tuple_expect["dst_port"] = nf_port_map[egress]
    sss_sdnet_tuples.sume_tuple_expect["drop"] = drop
    if "flow_id" in kwargs:
        sss_sdnet_tuples.dig_tuple_expect["flow_id"] = kwargs[
            "flow_id"]  # 792281630049477301766976897099
    if "tuser" in kwargs:
        sss_sdnet_tuples.dig_tuple_expect["tuser"] = kwargs["tuser"]
    sss_sdnet_tuples.write_tuples()

    if egress in ["nf0", "nf1", "nf2", "nf3"] and drop == False:
        nf_expected[nf_id_map[egress]].append(pkt)
    elif egress == "bcast" and drop == False:
        nf_expected[0].append(pkt)
        nf_expected[1].append(pkt)
        nf_expected[2].append(pkt)
        nf_expected[3].append(pkt)
def expPkt(pkt, egress, digest=None):
    pktsExpected.append(pkt)
    sss_sdnet_tuples.sume_tuple_expect['dst_port'] = nf_port_map[egress]
    if digest is not None:
        sss_sdnet_tuples.sume_tuple_expect['send_dig_to_cpu'] = 1
        for k, v in digest.items():
            sss_sdnet_tuples.dig_tuple_expect[k] = v
        dma0_expected.append(Digest(**digest))
    else:
        sss_sdnet_tuples.sume_tuple_expect['send_dig_to_cpu'] = 0
        for k in sss_sdnet_tuples.dig_tuple_expect.keys():
            sss_sdnet_tuples.dig_tuple_expect[k] = 0
    sss_sdnet_tuples.write_tuples()
    if egress in ["nf0", "nf1", "nf2", "nf3"]:
        nf_expected[nf_id_map[egress]].append(pkt)
    elif egress == 'bcast':
        nf_expected[0].append(pkt)
        nf_expected[1].append(pkt)
        nf_expected[2].append(pkt)
        nf_expected[3].append(pkt)
示例#6
0
def expPkt(pkt, egress, eth_src_addr, src_port):
    pktsExpected.append(pkt)
    sss_sdnet_tuples.sume_tuple_expect['send_dig_to_cpu'] = 1
    sss_sdnet_tuples.sume_tuple_expect['dst_port'] = 0b01010101  # broadcast

    sss_sdnet_tuples.dig_tuple_expect['eth_src_addr'] = mac_to_int(eth_src_addr)
    sss_sdnet_tuples.dig_tuple_expect['src_port'] = nf_port_map[src_port]
    sss_sdnet_tuples.dig_tuple_expect['flags'] = 8

    sss_sdnet_tuples.write_tuples()

    if True: # if goes to plane
        digest_pkt = Digest_data(flags=8,eth_src_addr=mac_to_int(eth_src_addr), src_port=nf_port_map[src_port])
        dma0_expected.append(digest_pkt)

    if egress in ["nf0","nf1","nf2","nf3"]:
        nf_expected[nf_id_map[egress]].append(pkt)
    elif egress == 'bcast':
        nf_expected[0].append(pkt)
        nf_expected[1].append(pkt)
        nf_expected[2].append(pkt)
        nf_expected[3].append(pkt)