Linux Kernel Network Programming - struct ip_options - Intro code walk Example
Linux Kernel Network Programming - struct ip_options - Intro code walk Example

A typical IPv4 header is fixed in length. However there is a provision to add extra dynamically sized IP Options header used for Network testing and debugging. Although it is not preferred or encouraged to add IP options header as it increases the size of the overall IPv4 header thus increasing the overhead by reducing the payload size. And if the options are added/modified/appended by intermediate routers (such as in the case of Record Route), then every router in its forward plane may need to update the IP Options header (if it honors) thus significantly adding extra processing latency especially in high packet rate high-speed networks.

Refer:
Online Course – Networking Protocols – Playlist ↗
IP Forward – Dataplane/forward-plane source ↗
#defines IP options ↗
/net/ipv4/ip_options.c ↗
struct ip_options – IP Options ↗
The Linux Channel – Video Categories ↗
Options Field in IPv4 Header ↗
Structure of IP packet with and without IP options ↗

So here is my detailed YouTube video on the same and overall various aspects of IP Options.

I also conduct sessions/classes on Systems and Network Software Programming, Linux Kernel Programming and Architecture. If you are interested, click HERE for more details.

If you have any queries or anything to discuss further kindly feel free to contact me.

Leave a Reply

Your email address will not be published. Required fields are marked *