|
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?
[Prev in Thread] | Current Thread | [Next in Thread] |