mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-28 16:01:18 +01:00
* added loopback and all nodes multicast address automatically to interface according to RFC 2581
This commit is contained in:
parent
8de7bd7662
commit
a4f673ec96
@ -221,7 +221,7 @@ void ipv6_set_all_nds_mcast_addr(ipv6_addr_t *ipaddr){
|
||||
ipaddr->uint16[7] = HTONS(0x0001);
|
||||
}
|
||||
|
||||
void ipv6_set_lpback_addr(ipv6_addr_t *ipaddr){
|
||||
void ipv6_set_loaddr(ipv6_addr_t *ipaddr){
|
||||
ipaddr->uint16[0] = 0;
|
||||
ipaddr->uint16[1] = 0;
|
||||
ipaddr->uint16[2] = 0;
|
||||
|
||||
@ -141,7 +141,7 @@ uint8_t ipv6_is_router(void);
|
||||
void ipv6_set_ll_prefix(ipv6_addr_t *ipaddr);
|
||||
void ipv6_set_all_rtrs_mcast_addr(ipv6_addr_t *ipaddr);
|
||||
void ipv6_set_all_nds_mcast_addr(ipv6_addr_t *ipaddr);
|
||||
void ipv6_set_lpback_addr(ipv6_addr_t *ipaddr);
|
||||
void ipv6_set_loaddr(ipv6_addr_t *ipaddr);
|
||||
void ipv6_set_sol_node_mcast_addr(ipv6_addr_t *addr_in, ipv6_addr_t *addr_out);
|
||||
void sixlowpan_bootstrapping(void);
|
||||
void sixlowpan_send(ipv6_addr_t *addr, uint8_t *payload, uint16_t p_len);
|
||||
|
||||
@ -35,7 +35,7 @@ unsigned int ip_process_pid;
|
||||
unsigned int nd_nbr_cache_rem_pid = 0;
|
||||
|
||||
iface_t iface;
|
||||
ipv6_addr_t loaddr;
|
||||
ipv6_addr_t lladdr;
|
||||
ieee_802154_long_t laddr;
|
||||
mutex_t buf_mutex;
|
||||
|
||||
@ -930,6 +930,7 @@ lowpan_context_t * lowpan_context_num_lookup(uint8_t num){
|
||||
}
|
||||
|
||||
void sixlowpan_init(transceiver_type_t trans, uint8_t r_addr){
|
||||
ipv6_addr_t tmp;
|
||||
/* init mac-layer and radio transceiver */
|
||||
vtimer_init();
|
||||
sixlowmac_init(trans);
|
||||
@ -942,10 +943,19 @@ void sixlowpan_init(transceiver_type_t trans, uint8_t r_addr){
|
||||
mutex_init(&buf_mutex);
|
||||
|
||||
/* init link-local address */
|
||||
ipv6_set_ll_prefix(&loaddr);
|
||||
ipv6_set_ll_prefix(&lladdr);
|
||||
|
||||
memcpy(&(loaddr.uint8[8]), &(iface.laddr.uint8[0]), 8);
|
||||
ipv6_iface_add_addr(&loaddr, ADDR_STATE_PREFERRED, 0, 0,
|
||||
memcpy(&(lladdr.uint8[8]), &(iface.laddr.uint8[0]), 8);
|
||||
ipv6_iface_add_addr(&lladdr, ADDR_STATE_PREFERRED, 0, 0,
|
||||
ADDR_TYPE_LINK_LOCAL);
|
||||
ipv6_set_loaddr(&tmp);
|
||||
ipv6_iface_add_addr(&tmp, ADDR_STATE_PREFERRED, 0, 0,
|
||||
ADDR_TYPE_LOOPBACK);
|
||||
ipv6_set_all_nds_mcast_addr(&tmp);
|
||||
ipv6_iface_add_addr(&tmp, ADDR_STATE_PREFERRED, 0, 0,
|
||||
ADDR_TYPE_LOOPBACK);
|
||||
|
||||
ipv6_iface_add_addr(&lladdr, ADDR_STATE_PREFERRED, 0, 0,
|
||||
ADDR_CONFIGURED_AUTO);
|
||||
ip_process_pid = thread_create(ip_process_buf, IP_PROCESS_STACKSIZE,
|
||||
PRIORITY_MAIN-1, CREATE_STACKTEST,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user