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()
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)
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)
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)
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)