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

定义好的包,如何放到m_buf里面,然后发送出去?

+2 投票
这是我写的核心代码, 有待完善, 主要是不知道如何把 包发出去。

例子程序都看过了, 大部分是转发的, 并没有涉及到 如何把自己的包放进去。

希望大神指点一二,   

while(1){
                struct rte_mbuf *bufs[BURST_SIZE] ;  //设置 SIZE 个 Buf

                struct ether_addr d_addr = {{0x14,0x02,0xEC,0x89,0x8D,0x24}};
                struct ether_addr s_addr = {{0x14,0x02,0xEC,0x89,0xED,0x54}};
                uint16_t ether_type = 1; //长度为1 内容为5
                uint8_t comment = 5;
                struct ether_hdr pkt_hdr = {d_addr,s_addr,ether_type};
                //bufs = (void)pkt_hdr;
                const uint16_t nb_rx = rte_eth_rx_burst(0, 0, m, BURST_SIZE);
                //rte_pktmbuf_free(bufs[buf]);

        }
最新提问 1月 1 分类:DPDK初学入门 | 用户: zenhox (160 分)

4 个回答

+2 投票
你这个代码里还差挺多的呢。如果是发自己填充的数据的话,还需要分配具体的mbuf,可以看看rte_mbuf_raw_alloc这个函数,在新版本的DPDK里也可能函数名不一样了,应该是个类似的函数。
最新回答 1月 2 用户: sysight (10,500 分)
谢谢您得指导, 我现在可以发出去了。
0 投票
楼主的发包代码怎么样呀,能否分享一下供小弟学习?

感激不尽!
最新回答 1月 10 用户: liuzhaoce (240 分)
嗯嗯,发过去了。 请留下你的邮箱
18081841724@163.com

多谢分享!
楼主可不可以发一份给我,小弟最近在搞DPDK发包,非常感谢啊。
490809510@qq,com
0 投票
你好,能否分享一份,正在研究,非常感谢。邮箱:275927950@qq.com
最新回答 1月 26 用户: HAPPY奔 (160 分)
0 投票
rte_pktmbuf_alloc() 创建mbuf

rte_eth_tx_buffer() 还有更多的api发送mbuf
最新回答 1月 31 用户: rayliu (180 分)
...