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

基于l2fwd打印出的ip不对,请问代码有问题吗,函数如下

0 投票

/*

                * 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);

 

                    }

            }

最新提问 7月 30 分类:默认分类 | 用户: fxding2019 (670 分)

2 个回答

+1 投票

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

最新回答 7月 31 用户: dpdk_vyang (170 分)
还是不行呢,解析出来与发包的ip对不上
方便留下邮箱吗?如果不介意,我之前写了一个你可以验证一下可以用不可以
哇,那再好不过了,真的很谢谢你哦~ 邮箱:fxding2019@gmail.com
发送不成功,被对方服务器退回
大佬再试试这个,1987314151@qq.com
+1 投票

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

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

最新回答 8月 29 用户: dpdk_lover (3,740 分)
谢谢~已解决。原因是帧报文后面还带有4个字节的vlan tag。
冀ICP备15005332号
...