0 投票
分类:默认分类 | 用户: (660 分)

/*

                * Read packet from RX queues

                */

            for (= 0; i < qconf->n_rx_port; i++) {

 

                portid = qconf->rx_port_list[i];

                nb_rx = rte_eth_rx_burst(portid, 0,

                                            mbufs, MAX_PKT_BURST);

 

                port_statistics[portid].rx += nb_rx;

                char tmp_buf[64];

                for (= 0; j < nb_rx; j++) {

                        struct rte_mbuf *pkt = mbufs[i];

 

                        eth_hdr = rte_pktmbuf_mtod(pkt,struct ether_hdr *);

                        ipv4_hdr = rte_pktmbuf_mtod_offset(pkt, struct ipv4_hdr *,sizeof(struct ether_hdr));

 

                        uint32_t_to_char(rte_bswap32(ipv4_hdr->src_addr), &a, &b, &c, &d);

                        printf("Packet Src:%hhu.%hhu.%hhu.%hhu \n", a, b, c, d);

                        uint32_t_to_char(rte_bswap32(ipv4_hdr->dst_addr), &a, &b, &c, &d);

                        printf("Dst:%hhu.%hhu.%hhu.%hhu \n", a, b, c, d);

                        printf("Src port:%hu,Dst port:%hu \n",

                                rte_bswap16(*(uint16_t *)(ipv4_hdr + 1)),

                                rte_bswap16(*((uint16_t *)(ipv4_hdr + 1) + 1)));

                        printf("total length: %d\n",ipv4_hdr->total_length);

                        printf("=================================================================\n");

 

                        rte_pktmbuf_free(pkt);

 

                    }

            }

2 个回答

+1 投票
用户: (210 分)

struct rte_mbuf *pkt = mbufs[i]; 写错了吧, 改成 struct rte_mbuf *pkt = mbufs[j]; 试一试

用户: (660 分)
还是不行呢,解析出来与发包的ip对不上
用户: (210 分)
方便留下邮箱吗?如果不介意,我之前写了一个你可以验证一下可以用不可以
用户: (660 分)
哇,那再好不过了,真的很谢谢你哦~ 邮箱:[email protected]
用户: (210 分)
发送不成功,被对方服务器退回
用户: (660 分)
大佬再试试这个,[email protected]
+1 投票
用户: (5.1k 分)

1.先打印一下ipv4_hdr的20个字节,核查一下是否准确;

2.如果准确,请核查调用的uint32_t_to_char、rte_bswap32这些接口是否有问题

用户: (660 分)
谢谢~已解决。原因是帧报文后面还带有4个字节的vlan tag。

欢迎来到 DPDK交流社区 ,有什么问题可以尽管在这里提问,您将会收到社区其他成员的回答;也可以将您的总结写在这里,为社区其他成员提供帮助。

QQ交流2群:635461501 (入群请注明来源)

冀ICP备15005332号-2
...