[dpdk-dev] Crafting a packet for transmission.

Vladimir Medvedkin medvedkinv at gmail.com
Thu Mar 13 13:51:48 CET 2014


Cast pointer to required struct pointer, for example for ipv4
struct ipv4_hdr *iph;
iph = (struct ipv4_hdr *)rte_pktmbuf_append(m, sizeof(struct ipv4_hdr));
and fill in fields.
Look in lib/librte_net/ directory.

Regards,
Vladimir


2014-03-13 16:04 GMT+04:00 Aravind <altoarun at gmail.com>:

> Thank you for your reply Vladimir.
>
> I just went through the api reference for Intel DPDK. 'rte_pktmbuf_append'
> funcion append len bytes to an mbuf and return a pointer to the start
> address of the added data. But how am I suppose to fill in the packet
> headers...? It would be great if you could guide me on this.
>
>
>
>
>
> The information contained in this communication is intended solely for the
> use of the individual(individuals) or entity to whom it is addressed and
> others authorized to receive it. It may contain confidential or legally
> privileged information. If you are not the intended recipient, you are
> hereby notified that any disclosure, copying, distribution or taking any
> action in reliance on the contents of this information is strictly
> prohibited and may be unlawful. If you have received this communication in
> error, please notify me immediately by responding to this email and then
> delete it from your system. Me myself is neither liable for the proper and
> complete transmission of the information contained in this communication
> nor for any delay in its receipt.
>
>
> On Thu, Mar 13, 2014 at 5:18 PM, Vladimir Medvedkin <medvedkinv at gmail.com>wrote:
>
>> Hi,
>>
>> At first look at https://github.com/Pktgen/Pktgen-DPDK
>>
>> If you need your custom app:
>> - alloc mbuf with rte_pktmbuf_alloc
>> - fill up L2-4 headers fields (look at rte_pktmbuf_append func for
>> example)
>> - send packet via rte_eth_tx_burst
>>
>> Regards,
>> Vladimir
>>
>>
>> 2014-03-13 15:15 GMT+04:00 sabu kurian <sabu2kurian at gmail.com>:
>>
>> > Hai friends,
>> >
>> > My requirement is to create a packet generator. So I could use
>> >
>> > struct rte_mbuf * m;
>> >
>> > to create a single packet holder. So how am I suppose to fill in the
>> packet
>> > details like the MAC source , destination and also the IP source ,
>> > destination (in case of IPv4 packets).
>> >
>> > Following the l2fwd example, which has got the TAP interface to write
>> the
>> > data to and read the data from.
>> >
>> > using the ether_hdr , one could read the MAC address from the packet
>> >
>> > eth = rte_pktmbuf_mtod(m, struct ether_hdr *);
>> > tmp = &eth->s_addr.addr_bytes[0];
>> >
>> > But how am I suppose to craft a packet and supply in all these details
>> , so
>> > that I could sent the packet via rte_eth_tx_burst
>> >
>> >
>> > Thanks in advance
>> >
>>
>
>


More information about the dev mailing list