Merge pull request #999 from adamdunkels/lebrush-rdnss-support-rebased

RDNSS support, again
This commit is contained in:
Nicolas Tsiftes 2015-03-30 17:21:23 +02:00
commit 8f50d9709d
16 changed files with 472 additions and 63 deletions

View file

@ -87,7 +87,7 @@
#define UIP_ND6_MIN_RA_INTERVAL UIP_CONF_ND6_MIN_RA_INTERVAL
#endif
#define UIP_ND6_M_FLAG 0
#define UIP_ND6_O_FLAG 0
#define UIP_ND6_O_FLAG (UIP_ND6_RA_RDNSS || UIP_ND6_RA_DNSSL)
#define UIP_ND6_ROUTER_LIFETIME 3 * UIP_ND6_MAX_RA_INTERVAL
#define UIP_ND6_MAX_INITIAL_RA_INTERVAL 16 /*seconds*/
@ -139,6 +139,23 @@
/** @} */
/** \name RFC 6106 RA DNS Options Constants */
/** @{ */
#ifndef UIP_CONF_ND6_RA_RDNSS
#define UIP_ND6_RA_RDNSS 0
#else
#define UIP_ND6_RA_RDNSS UIP_CONF_ND6_RA_RDNSS
#endif
#ifndef UIP_CONF_ND6_RA_DNSSL
#define UIP_ND6_RA_DNSSL 0
#else
#error Not implemented
#define UIP_ND6_RA_DNSSL UIP_CONF_ND6_RA_DNSSL
#endif
/** @} */
/** \name ND6 option types */
/** @{ */
#define UIP_ND6_OPT_SLLAO 1
@ -146,6 +163,8 @@
#define UIP_ND6_OPT_PREFIX_INFO 3
#define UIP_ND6_OPT_REDIRECTED_HDR 4
#define UIP_ND6_OPT_MTU 5
#define UIP_ND6_OPT_RDNSS 25
#define UIP_ND6_OPT_DNSSL 31
/** @} */
/** \name ND6 option types */
@ -168,6 +187,8 @@
#define UIP_ND6_OPT_HDR_LEN 2
#define UIP_ND6_OPT_PREFIX_INFO_LEN 32
#define UIP_ND6_OPT_MTU_LEN 8
#define UIP_ND6_OPT_RDNSS_LEN 1
#define UIP_ND6_OPT_DNSSL_LEN 1
/* Length of TLLAO and SLLAO options, it is L2 dependant */
@ -290,6 +311,15 @@ typedef struct uip_nd6_opt_mtu {
uint32_t mtu;
} uip_nd6_opt_mtu;
/** \brief ND option RDNSS */
typedef struct uip_nd6_opt_dns {
uint8_t type;
uint8_t len;
uint16_t reserved;
uint32_t lifetime;
uip_ipaddr_t ip;
} uip_nd6_opt_dns;
/** \struct Redirected header option */
typedef struct uip_nd6_opt_redirected_hdr {
uint8_t type;