Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki
This commit is contained in:
commit
9d8be775d4
12 changed files with 281 additions and 164 deletions
|
@ -578,7 +578,7 @@ compress_hdr_hc06(rimeaddr_t *rime_destaddr)
|
|||
/* Note that the payload length is always compressed */
|
||||
|
||||
/* Next header. We compress it if UDP */
|
||||
#if UIP_CONF_UDP
|
||||
#if UIP_CONF_UDP || UIP_CONF_ROUTER
|
||||
if(UIP_IP_BUF->proto == UIP_PROTO_UDP) {
|
||||
iphc0 |= SICSLOWPAN_IPHC_NH_C;
|
||||
}
|
||||
|
@ -700,7 +700,7 @@ compress_hdr_hc06(rimeaddr_t *rime_destaddr)
|
|||
|
||||
uncomp_hdr_len = UIP_IPH_LEN;
|
||||
|
||||
#if UIP_CONF_UDP
|
||||
#if UIP_CONF_UDP || UIP_CONF_ROUTER
|
||||
/* UDP header compression */
|
||||
if(UIP_IP_BUF->proto == UIP_PROTO_UDP) {
|
||||
PRINTF("IPHC: Uncompressed UDP ports on send side: %x, %x\n",
|
||||
|
|
|
@ -158,7 +158,8 @@ uip_ds6_periodic(void)
|
|||
#if UIP_ND6_DEF_MAXDADNS > 0
|
||||
} else if((locaddr->state == ADDR_TENTATIVE)
|
||||
&& (locaddr->dadnscount <= uip_ds6_if.maxdadns)
|
||||
&& (timer_expired(&locaddr->dadtimer))) {
|
||||
&& (timer_expired(&locaddr->dadtimer))
|
||||
&& (uip_len == 0)) {
|
||||
uip_ds6_dad(locaddr);
|
||||
#endif /* UIP_ND6_DEF_MAXDADNS > 0 */
|
||||
}
|
||||
|
@ -195,7 +196,7 @@ uip_ds6_periodic(void)
|
|||
case NBR_INCOMPLETE:
|
||||
if(locnbr->nscount >= UIP_ND6_MAX_MULTICAST_SOLICIT) {
|
||||
uip_ds6_nbr_rm(locnbr);
|
||||
} else if(stimer_expired(&locnbr->sendns)) {
|
||||
} else if(stimer_expired(&locnbr->sendns) && (uip_len == 0)) {
|
||||
locnbr->nscount++;
|
||||
PRINTF("NBR_INCOMPLETE: NS %u\n", locnbr->nscount);
|
||||
uip_nd6_ns_output(NULL, NULL, &locnbr->ipaddr);
|
||||
|
@ -211,7 +212,7 @@ uip_ds6_periodic(void)
|
|||
}
|
||||
break;
|
||||
case NBR_DELAY:
|
||||
if(stimer_expired(&locnbr->reachable)) {
|
||||
if(stimer_expired(&locnbr->reachable) && (uip_len == 0)) {
|
||||
locnbr->state = NBR_PROBE;
|
||||
locnbr->nscount = 1;
|
||||
PRINTF("DELAY: moving to PROBE + NS %u\n", locnbr->nscount);
|
||||
|
@ -226,7 +227,7 @@ uip_ds6_periodic(void)
|
|||
uip_ds6_defrt_rm(locdefrt);
|
||||
}
|
||||
uip_ds6_nbr_rm(locnbr);
|
||||
} else if(stimer_expired(&locnbr->sendns)) {
|
||||
} else if(stimer_expired(&locnbr->sendns) && (uip_len == 0)) {
|
||||
locnbr->nscount++;
|
||||
PRINTF("PROBE: NS %u\n", locnbr->nscount);
|
||||
uip_nd6_ns_output(NULL, &locnbr->ipaddr, &locnbr->ipaddr);
|
||||
|
@ -241,7 +242,7 @@ uip_ds6_periodic(void)
|
|||
|
||||
#if UIP_CONF_ROUTER & UIP_ND6_SEND_RA
|
||||
/* Periodic RA sending */
|
||||
if(stimer_expired(&uip_ds6_timer_ra)) {
|
||||
if(stimer_expired(&uip_ds6_timer_ra) && (uip_len == 0)) {
|
||||
uip_ds6_send_ra_periodic();
|
||||
}
|
||||
#endif /* UIP_CONF_ROUTER & UIP_ND6_SEND_RA */
|
||||
|
|
|
@ -351,6 +351,11 @@ uip_nd6_ns_output(uip_ipaddr_t * src, uip_ipaddr_t * dest, uip_ipaddr_t * tgt)
|
|||
} else {
|
||||
uip_ds6_select_src(&UIP_IP_BUF->srcipaddr, &UIP_IP_BUF->destipaddr);
|
||||
}
|
||||
if (uip_is_addr_unspecified(&UIP_IP_BUF->srcipaddr)) {
|
||||
PRINTF("Dropping NS due to no suitable source address\n");
|
||||
uip_len = 0;
|
||||
return;
|
||||
}
|
||||
UIP_IP_BUF->len[1] =
|
||||
UIP_ICMPH_LEN + UIP_ND6_NS_LEN + UIP_ND6_OPT_LLAO_LEN;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue