netwib doc_html (version 5.39.0)

## main index

## section index

    /*-------------------------------------------------------------*/
    /***************************************************************
     * Currently, only Ethernet-IPv4 is implemented as ARP.        *
     ***************************************************************/

    /*-------------------------------------------------------------*/
    /* ARP header */
    typedef enum {
      NETWIB_ARPHDROP_ARPREQ = 1,
      NETWIB_ARPHDROP_ARPREP = 2,
      NETWIB_ARPHDROP_RARPREQ = 3,
      NETWIB_ARPHDROP_RARPREP = 4
    } netwib_arphdrop;
    typedef struct
    { netwib_arphdrop op;
      netwib_eth ethsrc;
      netwib_ip ipsrc;
      netwib_eth ethdst;
      netwib_ip ipdst;
    } netwib_arphdr;
    typedef const netwib_arphdr netwib_constarphdr;
    #define NETWIB_ARPHDR_LEN 28

    /*-------------------------------------------------------------*/
    /* Name : netwib_arphdr_initdefault
       Description :
         Initialize a netwib_arphdr with default values.
       Input parameter(s) :
       Input/output parameter(s) :
       Output parameter(s) :
         *parphdr : netwib_arphdr to initialize
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_arphdr_initdefault(netwib_arphdr *parphdr);

    /*-------------------------------------------------------------*/
    /* Name : netwib_pkt_append_arphdr
       Description :
         Initialize physical data from a netwib_arphdr.
       Input parameter(s) :
         *parphdr : netwib_arphdr
       Input/output parameter(s) :
         *ppht : buffer to initialize
       Output parameter(s) :
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_pkt_append_arphdr(netwib_constarphdr *parphdr,
                                        netwib_buf *ppkt);
    netwib_err netwib_pkt_prepend_arphdr(netwib_constarphdr *parphdr,
                                         netwib_buf *ppkt);

    /*-------------------------------------------------------------*/
    /* Name : netwib_pkt_decode_arphdr
       Description :
         Decode a netwib_arphdr from physical data.
       Input parameter(s) :
         *ppkt : buffer containing physical data
       Input/output parameter(s) :
       Output parameter(s) :
         *parphdr : netwib_arphdr contained in pkt
         *pskipsize : size to use to skip this header
       Normal return values :
         NETWIB_ERR_OK : ok
         NETWIB_ERR_NOTCONVERTED : pkt could not be decoded
         NETWIB_ERR_DATAMISSING : pkt was not big enough
    */
    netwib_err netwib_pkt_decode_arphdr(netwib_constbuf *ppkt,
                                        netwib_arphdr *parphdr,
                                        netwib_uint32 *pskipsize);

## main index

## section index