1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-25 06:23:53 +01:00

[sys/net/sixlowpan/sixlownd.*]

* fixed STLLAO-Bug
This commit is contained in:
mlenders 2011-07-04 16:47:06 +02:00
parent af0731cb13
commit 2b1f5234ad
2 changed files with 11 additions and 10 deletions

View File

@ -140,13 +140,13 @@ void init_rtr_sol(uint8_t sllao){
ipv6_get_saddr(&(ipv6_buf->srcaddr), &(ipv6_buf->destaddr));
opt_hdr_len = RTR_SOL_LEN;
ipv6_buf->length = ICMPV6_HDR_LEN + RTR_SOL_LEN + OPT_STLLAO_LEN;
ipv6_buf->length = ICMPV6_HDR_LEN + RTR_SOL_LEN + OPT_STLLAO_MAX_LEN;
if(sllao == OPT_SLLAO){
opt_stllao_buf = get_opt_stllao_buf(ipv6_ext_hdr_len, opt_hdr_len);
set_llao(opt_stllao_buf, OPT_SLLAO_TYPE, 2);
packet_length = IPV6_HDR_LEN + ICMPV6_HDR_LEN + ipv6_ext_hdr_len +
RTR_SOL_LEN + OPT_STLLAO_LEN;
RTR_SOL_LEN + OPT_STLLAO_MAX_LEN;
} else {
packet_length = IPV6_HDR_LEN + ICMPV6_HDR_LEN + ipv6_ext_hdr_len +
RTR_SOL_LEN;
@ -265,9 +265,9 @@ void init_rtr_adv(ipv6_addr_t *addr, uint8_t sllao, uint8_t mtu, uint8_t pi,
if(sllao == OPT_SLLAO){
/* set link layer address option */
opt_stllao_buf = get_opt_stllao_buf(ipv6_ext_hdr_len, opt_hdr_len);
set_llao(opt_stllao_buf,OPT_STLLAO_LEN, 2);
opt_hdr_len += OPT_STLLAO_LEN;
packet_length += OPT_STLLAO_LEN;
set_llao(opt_stllao_buf,OPT_SLLAO_TYPE, 2);
opt_hdr_len += OPT_STLLAO_MAX_LEN;
packet_length += OPT_STLLAO_MAX_LEN;
}
if(mtu == OPT_MTU){
@ -587,9 +587,9 @@ void init_nbr_sol(ipv6_addr_t *src, ipv6_addr_t *dest, ipv6_addr_t *targ,
/* set sllao option */
opt_stllao_buf = get_opt_stllao_buf(ipv6_ext_hdr_len, opt_hdr_len);
set_llao(opt_stllao_buf, OPT_SLLAO_TYPE, 1);
opt_hdr_len += OPT_STLLAO_LEN;
opt_hdr_len += OPT_STLLAO_MIN_LEN;
packet_length += OPT_STLLAO_LEN;
packet_length += OPT_STLLAO_MIN_LEN;
}
}
@ -803,9 +803,9 @@ void init_nbr_adv(ipv6_addr_t *src, ipv6_addr_t *dst, ipv6_addr_t *tgt,
/* set sllao option */
opt_stllao_buf = get_opt_stllao_buf(ipv6_ext_hdr_len, opt_hdr_len);
set_llao(opt_stllao_buf, OPT_SLLAO_TYPE, 1);
opt_hdr_len += OPT_STLLAO_LEN;
opt_hdr_len += OPT_STLLAO_MIN_LEN;
packet_length += OPT_STLLAO_LEN;
packet_length += OPT_STLLAO_MIN_LEN;
}
if(aro == OPT_ARO){

View File

@ -31,7 +31,8 @@
#define ICMP_NBR_ADV 136
#define ICMP_NBR_SOL 135
/* stllao option rfc4861 4.6.1 */
#define OPT_STLLAO_LEN 16
#define OPT_STLLAO_MIN_LEN 8
#define OPT_STLLAO_MAX_LEN 16
#define OPT_SLLAO_TYPE 1
#define OPT_TLLAO_TYPE 2
/* prefix info option rfc 4.6.2 */