Hey Kaspar,
You normally would mark the header out, not the payload, since this is the
marker for the packet buffer, that the packet is receiving:

pkt = ng_pktbuf_add(0,src,size,undef);
hdr = ng_pktbuf_add(pkt, pkt->data, hdr_size, hdr_type);

For sending you just add new snips to the packet:

payload = ng_pktbuf_add(0, pl_data, pl_size, undef);
hdr = ng_pktbuf_add(payload, hdr_data, hdr_size, hdr_type);

Does this answer your question?

Cheers,
Martine
Am 16.06.2015 23:01 schrieb "Kaspar Schleiser" <[email protected]>:

> Hey,
>
> (this goes probably to Martine)
>
> The docs of ng_pktbuf_add say:
>
> "If @p data is already in the packet buffer (e.g. a payload of an
> already allocated packet) it will not be duplicated."
>
> Does this check for pointer equality, or would it correctly de-duplicate
> the snip if I add e.g., just the end of a packet a second time?
>
> e.g.
> pkt = ng_pktbuf_add(0,0,size,undef);
> memcpy(pkt->data, src, size);
>
> payload = ng_pktbuf_add(pkt, pkt->data + hdr_size, size-hdr_size,
> hdr_type);
>
> Would this allocate the space for pkt->data + hdr_size a second time?
>
> Kaspar
> _______________________________________________
> devel mailing list
> [email protected]
> https://lists.riot-os.org/mailman/listinfo/devel
>
_______________________________________________
devel mailing list
[email protected]
https://lists.riot-os.org/mailman/listinfo/devel

Reply via email to