Title: udp_io_hdr


The "pseudo" udp header (not the standard udp header) is of type uih_io_hdr_t. uih_io_hdr_t is declared in include/net/gen/udp_hdr.h:

typedef struct udp_io_hdr

{
       ipaddr_t uih_src_addr;
       ipaddr_t uih_dst_addr;
       udpport_t uih_src_port;
       udpport_t uih_dst_port;
       u16_t uih_ip_opt_len;
       u16_t uih_data_len;
} udp_io_hdr_t;
uih_src_addr, uih_dst_addr, uih_src_port, uih_dst_port: Source and destination ip addresses and ports

uih_ip_opt_len: length of the ip options (zero if none exist)

uih_data_len: length of the data

If a udp file descriptor is configured appropriately, a process writing data to the udp file descriptor must prepend a pseudo udp header to the data, thereby specifying the values (given above) in the outgoing udp and ip headers. A udp pseudo header is also prepended to an otherwise header-less packet being copied to the process that requested a read.