/*-------------------------------------------------------------*/ #define netwib_pkt_append_uint8(data,u) *data++=(netwib_uint8)(u); #define netwib_pkt_append_uint16(data,u) *data++=netwib_c2_uint16_0(u);*data++=netwib_c2_uint16_1(u); #define netwib_pkt_append_uint32(data,u) *data++=netwib_c2_uint32_0(u);*data++=netwib_c2_uint32_1(u);*data++=netwib_c2_uint32_2(u);*data++=netwib_c2_uint32_3(u); /*-------------------------------------------------------------*/ #define netwib_pkt_decode_uint8(data,u) u=*data++; #define netwib_pkt_decode_uint16(data,u) u=*data++;u=(netwib_uint16)(u<<8|*data++); #define netwib_pkt_decode_uint32(data,u) u=*data++;u=u<<8|*data++;u=u<<8|*data++;u=u<<8|*data++; #define netwib_pkt_decode_uint8t(data,u,t) u=(t)(*data++); #define netwib_pkt_decode_uint16t(data,u,t) u=(t)(*data++);u=(t)(u<<8|*data++); #define netwib_pkt_decode_uint32t(data,u,t) u=(t)(*data++);u=(t)(u<<8|*data++);u=(t)(u<<8|*data++);u=(t)(u<<8|*data++); /*-------------------------------------------------------------*/ netwib_err netwib_priv_pkt_convert(netwib_device_dlttype dlttypein, netwib_constbuf *ppktin, netwib_pkt_newfield newfieldopt, netwib_pkt_newfield newfieldreq, netwib_ip *pgw, /* NULL if unknown */ netwib_device_dlttype dlttypeout, netwib_linkhdr *plinkhdrout, netwib_bufext *ppktout, netwib_bool *pdevnumset, netwib_uint32 *pdevnum); /*-------------------------------------------------------------*/ netwib_err netwib_priv_ippkt_decode_iptype(netwib_constbuf *ppkt, netwib_iptype *piptype); netwib_err netwib_priv_ippkt_decode_srcdst(netwib_constbuf *ppkt, netwib_ip *psrc, netwib_ip *pdst); /*-------------------------------------------------------------*/ netwib_err netwib_priv_ip6exts_skip_ip6ext(netwib_ipproto pktproto, netwib_constbuf *ppkt, netwib_ipproto *pnextproto, netwib_uint32 *pskipsize); netwib_err netwib_priv_ip6exts_skip_notfrag(netwib_ipproto pktproto, netwib_constbuf *ppkt, netwib_uint32 *pskipsize); /*-------------------------------------------------------------*/ netwib_err netwib_priv_icmp4_size(netwib_consticmp4 *picmp4, netwib_uint32 *psize); netwib_err netwib_priv_icmp6_size(netwib_consticmp6 *picmp6, netwib_uint32 *psize); /*-------------------------------------------------------------*/ #define NETWIB_PRIV_IP4HDR_MINLEN 20 #define NETWIB_PRIV_IP4HDR_MAXLEN 64 #define NETWIB_PRIV_IP6HDR_MINLEN 40