diff --git a/sys/net/sixlowpan/sixlowedge.c b/sys/net/sixlowpan/sixlowedge.c index 26fe6753bc..d5fb252765 100644 --- a/sys/net/sixlowpan/sixlowedge.c +++ b/sys/net/sixlowpan/sixlowedge.c @@ -503,7 +503,30 @@ void multiplex_send_ipv6_over_uart(struct ipv6_hdr_t *packet) { serial_buf->type = BORDER_PACKET_L3_TYPE; serial_buf->ethertype = BORDER_ETHERTYPE_IPV6; memcpy(border_out_buf+sizeof (border_l3_header_t), packet, IPV6_HDR_LEN + packet->length); - writepacket(border_out_buf, sizeof (border_l3_header_t) + IPV6_HDR_LEN + packet->length); + + flowcontrol_send_over_tty( + (border_packet_t *) serial_buf, + sizeof (border_l3_header_t) + ); +} + +void multiplex_send_addr_over_uart(ipv6_addr_t *addr) { + border_addr_packet_t *serial_buf; + + serial_buf = (border_addr_packet_t *)border_out_buf; + serial_buf->reserved = 0; + serial_buf->type = BORDER_PACKET_CONF_TYPE; + serial_buf->conftype = BORDER_CONF_IPADDR; + memcpy( + &serial_buf->addr, + addr, + sizeof (ipv6_addr_t) + ); + + flowcontrol_send_over_tty( + (border_packet_t *) serial_buf, + sizeof (border_addr_packet_t) + ); } void border_send_ipv6_over_lowpan(struct ipv6_hdr_t *packet, uint8_t aro_flag, uint8_t sixco_flag) { diff --git a/sys/net/sixlowpan/sixlowedge.h b/sys/net/sixlowpan/sixlowedge.h index fa9888a65f..99b8001a31 100644 --- a/sys/net/sixlowpan/sixlowedge.h +++ b/sys/net/sixlowpan/sixlowedge.h @@ -110,6 +110,7 @@ typedef struct flowcontrol_stat_t { uint8_t border_initialize(transceiver_type_t trans,ipv6_addr_t *border_router_addr); void multiplex_send_ipv6_over_uart(struct ipv6_hdr_t *packet); +void multiplex_send_addr_over_uart(ipv6_addr_t *addr); void flowcontrol_send_over_uart(border_packet_t *packet, int len); void border_send_ipv6_over_lowpan(struct ipv6_hdr_t *packet, uint8_t aro_flag, uint8_t sixco_flag); void border_process_lowpan(void); @@ -120,7 +121,4 @@ void slwin_init(); abr_cache_t *get_border_router_info(); -lowpan_context_t *border_define_context(uint8_t cid, ipv6_addr_t *prefix, uint8_t prefix_len, uint16_t lifetime); -lowpan_context_t *border_alloc_context(ipv6_addr_t *prefix, uint8_t prefix_len, uint16_t lifetime); - #endif /* SIXLOWBORDER_H*/