[sys/net/sixlowpan/sixlowip.h sys/net/sixlowpan/sixlowip.c]

* added capability to initiate a node as router
* added capability to check if a node is initiated as router
This commit is contained in:
mlenders 2011-06-22 12:34:32 +02:00
parent 6d074b4a29
commit a2d7628a73
2 changed files with 21 additions and 0 deletions

View File

@ -383,3 +383,22 @@ uint32_t get_remaining_time(vtimer_t *t){
void set_remaining_time(vtimer_t *t, uint32_t time){
t->absolute.nanoseconds = time * 1000000;
}
void ipv6_init_iface_as_router(void) {
ipv6_addr_t addr;
ipv6_set_all_rtrs_mcast_addr(&addr);
ipv6_iface_add_addr(&addr,ADDR_STATE_PREFERRED,0,0,ADDR_TYPE_MULTICAST);
}
uint8_t ipv6_is_router(void) {
ipv6_addr_t addr;
ipv6_set_all_rtrs_mcast_addr(&addr);
if (ipv6_iface_addr_match(&addr) != NULL) {
return 1;
}
return 0;
}

View File

@ -136,6 +136,8 @@ struct icmpv6_hdr_t* get_icmpv6_buf(uint8_t ext_len);
struct ipv6_hdr_t* get_ipv6_buf(void);
uint8_t * get_payload_buf(uint8_t ext_len);
void ipv6_init_iface_as_router(void);
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);