diff options
author | 2017-01-01 13:35:55 +0200 | |
---|---|---|
committer | 2017-01-01 13:35:55 +0200 | |
commit | fda9842014b327b1bc7cbeeea473a291568b9d1e (patch) | |
tree | eea1fa11c743921e394789490495c1bd66293cf6 /src | |
parent | 355c20f88d2013e7e8d22b27a49297dc92101aa2 (diff) |
Fix --send-debug-pkt test so that VIC card will be able to work with less patches
Signed-off-by: Ido Barnea <ibarnea@cisco.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/debug.cpp | 4 | ||||
-rw-r--r-- | src/dpdk/drivers/net/enic/base/vnic_dev.c | 6 | ||||
-rw-r--r-- | src/dpdk/drivers/net/enic/enic_clsf.c | 11 | ||||
-rw-r--r-- | src/pkt_gen.cpp | 9 |
4 files changed, 12 insertions, 18 deletions
diff --git a/src/debug.cpp b/src/debug.cpp index 5a881dd9..3e35a862 100644 --- a/src/debug.cpp +++ b/src/debug.cpp @@ -290,8 +290,8 @@ struct pkt_params { }; struct pkt_params test_pkts[] = { - {"ARP", 1, IPPROTO_UDP, 255, 5, 0, ZERO}, - {"VLAN ARP", 1, IPPROTO_UDP, 255, 5, DPF_VLAN, ZERO}, + {"ARP req", 1, IPPROTO_UDP, 255, 5, 0, ZERO}, + {"VLAN ARP req", 1, IPPROTO_UDP, 255, 5, DPF_VLAN, ZERO}, {"ipv4 TCP ttl 255", 4, IPPROTO_TCP, 255, 5, 0, STF}, {"ipv4 TCP ttl 246", 4, IPPROTO_TCP, 246, 5, 0, STF}, {"ipv4 TCP ttl 245", 4, IPPROTO_TCP, 245, 5, 0, ZERO}, diff --git a/src/dpdk/drivers/net/enic/base/vnic_dev.c b/src/dpdk/drivers/net/enic/base/vnic_dev.c index e50b90e7..dddb1dcd 100644 --- a/src/dpdk/drivers/net/enic/base/vnic_dev.c +++ b/src/dpdk/drivers/net/enic/base/vnic_dev.c @@ -667,12 +667,8 @@ int vnic_dev_packet_filter(struct vnic_dev *vdev, int directed, int multicast, (promisc ? CMD_PFILTER_PROMISCUOUS : 0) | (allmulti ? CMD_PFILTER_ALL_MULTICAST : 0); -#define TREX_PATCH -#ifdef TREX_PATCH - err = vnic_dev_cmd(vdev, CMD_PACKET_FILTER_ALL, &a0, &a1, wait); -#else err = vnic_dev_cmd(vdev, CMD_PACKET_FILTER, &a0, &a1, wait); -#endif + if (err) pr_err("Can't set packet filter\n"); diff --git a/src/dpdk/drivers/net/enic/enic_clsf.c b/src/dpdk/drivers/net/enic/enic_clsf.c index 8f68faab..1610951d 100644 --- a/src/dpdk/drivers/net/enic/enic_clsf.c +++ b/src/dpdk/drivers/net/enic/enic_clsf.c @@ -145,7 +145,7 @@ copy_fltr_recv_all(struct filter_v2 *fltr, struct rte_eth_fdir_input *input, memset(ð_mask, 0, sizeof(eth_mask)); memset(ð_val, 0, sizeof(eth_val)); - eth_val.ether_type = 0x0806; + eth_val.ether_type = 0xdead; eth_mask.ether_type = 0; gp->position = 0; @@ -381,14 +381,6 @@ int enic_fdir_del_fltr(struct enic *enic, struct rte_eth_fdir_filter *params) /* The entry is present in the table */ key = enic->fdir.nodes[pos]; -#ifdef TREX_PATCH - switch (params->soft_id) { - case 100: - // remove promisc when we delete 'receive all' filter - vnic_dev_packet_filter(enic->vdev, 1, 1, 1, 0, 1); - break; - } -#endif /* Delete the filter */ vnic_dev_classifier(enic->vdev, CLSF_DEL, &key->fltr_id, NULL); @@ -498,7 +490,6 @@ int enic_fdir_add_fltr(struct enic *enic, struct rte_eth_fdir_filter *params) #ifdef TREX_PATCH switch (params->soft_id) { case 100: - vnic_dev_packet_filter(enic->vdev, 1, 1, 1, 1, 1); copy_fltr_recv_all(&fltr, ¶ms->input, &enic->rte_dev->data->dev_conf.fdir_conf.mask); break; default: diff --git a/src/pkt_gen.cpp b/src/pkt_gen.cpp index 656b1b06..9f6a3d34 100644 --- a/src/pkt_gen.cpp +++ b/src/pkt_gen.cpp @@ -123,6 +123,9 @@ char *CTestPktGen::create_test_pkt(uint16_t l3_type, uint16_t l4_proto, uint8_t pkt_size += sizeof(struct CRx_check_header); } break; + case EthernetHeader::Protocol::ARP: + pkt_size += sizeof(ArpHdr); + break; } switch (l4_proto) { @@ -192,9 +195,13 @@ char *CTestPktGen::create_test_pkt(uint16_t l3_type, uint16_t l4_proto, uint8_t ipv6->setPayloadLen(pkt_size - 14 - sizeof(ipv6_header)); ipv6->setFlowLabel(ip_id); break; + case EthernetHeader::Protocol::ARP: + uint16_t vlan = (flags & DPF_VLAN) ? 200 : 0; + create_arp_req((uint8_t *)p_start, 0x01020304, 0x05060708, src_mac, vlan, 0); + return p_start; + break; } - struct TCPHeader *tcp = (TCPHeader *)p; struct ICMPHeader *icmp= (ICMPHeader *)p; switch (l4_proto) { |