lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-users] Add new header & tail


From: dhosa
Subject: [lwip-users] Add new header & tail
Date: Tue, 11 Sep 2018 03:29:00 -0700 (MST)

Hi, I'm trying to add & delete custom header ESP header 8 bytes before IP header, I used pbuf_header(p,8) in ip_output_if_opt before if (pbuf_header(p, IP_HLEN))

 *                              |room for new header
 *     ________________________\/________________________________________________
 *    |          ¦       ¦      ¦                             ¦ padd       ¦ ev. |
 *    | Ethernet ¦  IP   ¦ ESP  ¦          Payload(TCP,UDP    ¦ next-proto ¦ ICV |
 *    |__________¦_______¦______¦_____________________________¦____________¦_____|
 *    ¦                         ¦                             ¦                  ¦ 
 *                                                            ¦<-   room tail  ->¦ 
   

struct esp_hdr {
PACK_STRUCT_FIELD(u32_t spi);
PACK_STRUCT_FIELD(u32_t sequence_number);
}
pbuf_header(p,8);
esphdr = (struct esp_hdr *) q->payload;
esphdr->spi = spi;
esphdr->sequence_number = sequence_number;

 

is that correct? How can I delete esp header for an incoming packet only and keep IP header?
in ip_input :

// remove ip and esp header ... 20 for ip + 8 byte for esp
pbuf_header(p,-(IP_HLEN));


esphdr = (struct esp_hdr *)p->payload;

pbuf_header(p,-(8));


// generate IP header
pbuf_header(p, IP_HLEN);


again is that correct?



Sent from the lwip-users mailing list archive at Nabble.com.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]