/*-------------------------------------------------------------*/ /*************************************************************** * RFC 792 does not indicate if header length is 4 or 8 bytes. * * I choose to end after the checksum (so only 4 bytes). * ***************************************************************/ /*-------------------------------------------------------------*/ /* ICMP4 header */ typedef struct { netwib_icmp4type type; netwib_icmp4code code; netwib_uint16 check; } netwib_icmp4hdr; typedef const netwib_icmp4hdr netwib_consticmp4hdr; #define NETWIB_ICMP4HDR_LEN 4 /*-------------------------------------------------------------*/ /* Name : netwib_icmp4hdr_initdefault Description : Initialize a netwib_icmp4hdr with default values. Input parameter(s) : Input/output parameter(s) : Output parameter(s) : *picmp4hdr : netwib_icmp4hdr to initialize Normal return values : NETWIB_ERR_OK : ok */ netwib_err netwib_icmp4hdr_initdefault(netwib_icmp4hdr *picmp4hdr); /*-------------------------------------------------------------*/ /* Name : netwib_pkt_append_icmp4hdr Description : Initialize physical data from a netwib_icmp4hdr. Input parameter(s) : *picmp4hdr : netwib_icmp4hdr Input/output parameter(s) : *ppht : buffer to initialize Output parameter(s) : Normal return values : NETWIB_ERR_OK : ok */ netwib_err netwib_pkt_append_icmp4hdr(netwib_consticmp4hdr *picmp4hdr, netwib_buf *ppkt); netwib_err netwib_pkt_prepend_icmp4hdr(netwib_consticmp4hdr *picmp4hdr, netwib_buf *ppkt); /*-------------------------------------------------------------*/ /* Name : netwib_pkt_decode_icmp4hdr Description : Decode a netwib_icmp4hdr from physical data. Input parameter(s) : *ppkt : buffer containing physical data Input/output parameter(s) : Output parameter(s) : *picmp4hdr : netwib_icmp4hdr contained in pkt *pskipsize : size to use to skip this header Normal return values : NETWIB_ERR_OK : ok NETWIB_ERR_OKNOTDECODED : pkt could not be decoded */ netwib_err netwib_pkt_decode_icmp4hdr(netwib_constbuf *ppkt, netwib_icmp4hdr *picmp4hdr, netwib_uint32 *pskipsize); /*-------------------------------------------------------------*/ /* Name : netwib_buf_append_icmp4hdr Description : Print a netwib_icmp4hdr. Input parameter(s) : *picmp4hdr : netwib_icmp4hdr to print encodetype : netwib_encodetype to use Input/output parameter(s) : Output parameter(s) : *pbuf : netwib_buf receiving data Normal return values : NETWIB_ERR_OK : ok */ netwib_err netwib_buf_append_icmp4hdr(netwib_consticmp4hdr *picmp4hdr, netwib_encodetype encodetype, netwib_buf *pbuf);