netwib doc_html (version 5.39.0)

## main index

## section index

    /*-------------------------------------------------------------*/
    /***************************************************************
     * Refer to RFC 2461 to obtain more information about ICMPv6   *
     * Neighbor Discovery options.                                 *
     ***************************************************************/

    /*-------------------------------------------------------------*/
    typedef enum {
      NETWIB_ICMP6NDTYPE_SRCLINK = 1, /* src link layer address */
      NETWIB_ICMP6NDTYPE_DSTLINK = 2, /* dst link layer address */
      NETWIB_ICMP6NDTYPE_PREFIX = 3,  /* prefix information */
      NETWIB_ICMP6NDTYPE_REDIR = 4,   /* redirected */
      NETWIB_ICMP6NDTYPE_MTU = 5      /* mtu */
    } netwib_icmp6ndtype;

    /*-------------------------------------------------------------*/
    typedef struct {
      netwib_eth linkad;
    } netwib_icmp6nd_link;
    typedef const netwib_icmp6nd_link netwib_consticmp6nd_link;

    typedef struct {
      netwib_uint8 prefixlength;
      netwib_bool onlink;
      netwib_bool autonomous;
      netwib_uint8 reserved1;
      netwib_uint32 validlifetime;
      netwib_uint32 preferredlifetime;
      netwib_uint32 reserved2;
      netwib_ip prefix;
    } netwib_icmp6nd_prefix;
    typedef const netwib_icmp6nd_prefix netwib_consticmp6nd_prefix;

    typedef struct {
      netwib_uint16 reserved1;
      netwib_uint32 reserved2;
      netwib_bufext badippacket;
    } netwib_icmp6nd_redir;
    typedef const netwib_icmp6nd_redir netwib_consticmp6nd_redir;

    typedef struct {
      netwib_uint16 reserved;
      netwib_uint32 mtu;
    } netwib_icmp6nd_mtu;
    typedef const netwib_icmp6nd_mtu netwib_consticmp6nd_mtu;

    typedef struct {
      netwib_icmp6ndtype type;
      union {
        netwib_icmp6nd_link link;
        netwib_icmp6nd_prefix prefix;
        netwib_icmp6nd_redir redir;
        netwib_icmp6nd_mtu mtu;
      } opt;
    } netwib_icmp6nd;
    typedef const netwib_icmp6nd netwib_consticmp6nd;

    /*-------------------------------------------------------------*/
    /* Name : netwib_icmp6nd_initdefault
       Description :
         Initialize a netwib_icmp6nd with default values.
       Input parameter(s) :
       Input/output parameter(s) :
       Output parameter(s) :
         *picmp6nd : netwib_icmp6nd to initialize
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_icmp6nd_initdefault(netwib_icmp6ndtype icmp6ndtype,
                                          netwib_icmp6nd *picmp6nd);

    /*-------------------------------------------------------------*/
    /* Name : netwib_pkt_append_icmp6nd
       Description :
         Initialize physical data from a netwib_icmp6nd.
       Input parameter(s) :
         icmp6nd : netwib_icmp6nd
       Input/output parameter(s) :
         *ppht : buffer to initialize
       Output parameter(s) :
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_pkt_append_icmp6nd(netwib_consticmp6nd *picmp6nd,
                                         netwib_buf *ppkt);

    /*-------------------------------------------------------------*/
    /* Name : netwib_pkt_decode_icmp6nd
       Description :
         Decode a netwib_icmp6nd from data coming from wire.
       Input parameter(s) :
         *ppkt : buffer containing physical data
       Input/output parameter(s) :
       Output parameter(s) :
         *picmp6nd : netwib_icmp6nd to initialize
         *pskipsize : size to skip this option
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_pkt_decode_icmp6nd(netwib_constbuf *ppkt,
                                         netwib_icmp6nd *picmp6nd,
                                         netwib_uint32 *pskipsize);

## main index

## section index