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: http://lwip.100.n7.nabble.com/lwip-users-f3.html
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to