mirror of
https://github.com/oliverschmidt/contiki.git
synced 2024-12-22 10:30:13 +00:00
added fallback interface and removed uip_router
This commit is contained in:
parent
2b44f809fb
commit
b4adc6bcb5
@ -29,7 +29,7 @@
|
||||
* This file is part of the Contiki operating system.
|
||||
*
|
||||
*
|
||||
* $Id: tcpip.c,v 1.25 2010/03/15 16:41:24 joxe Exp $
|
||||
* $Id: tcpip.c,v 1.26 2010/03/16 15:35:03 joxe Exp $
|
||||
*/
|
||||
/**
|
||||
* \file
|
||||
@ -73,6 +73,10 @@ void uip_log(char *msg);
|
||||
#define UIP_IP_BUF ((struct uip_ip_hdr *)&uip_buf[UIP_LLH_LEN])
|
||||
#define UIP_TCP_BUF ((struct uip_tcpip_hdr *)&uip_buf[UIP_LLH_LEN])
|
||||
|
||||
#ifdef UIP_FALLBACK_INTERFACE
|
||||
external struct uip_fallback_interface UIP_FALLBACK_INTERFACE;
|
||||
#endif
|
||||
|
||||
process_event_t tcpip_event;
|
||||
#if UIP_CONF_ICMP6
|
||||
process_event_t tcpip_icmp6_event;
|
||||
@ -568,7 +572,11 @@ tcpip_ipv6_output(void)
|
||||
locrt = uip_ds6_route_lookup(&UIP_IP_BUF->destipaddr);
|
||||
if(locrt == NULL) {
|
||||
if((nexthop = uip_ds6_defrt_choose()) == NULL) {
|
||||
#ifdef UIP_FALLBACK_INTERFACE
|
||||
UIP_FALLBACK_INTERFACE.output();
|
||||
#else
|
||||
PRINTF("tcpip_ipv6_output: Destination off-link but no route\n");
|
||||
#endif
|
||||
uip_len = 0;
|
||||
return;
|
||||
}
|
||||
@ -741,7 +749,9 @@ PROCESS_THREAD(tcpip_process, ev, data)
|
||||
etimer_set(&periodic, CLOCK_SECOND / 2);
|
||||
|
||||
uip_init();
|
||||
|
||||
#ifdef UIP_FALLBACK_INTERFACE
|
||||
UIP_FALLBACK_INTERFACE.init();
|
||||
#endif
|
||||
while(1) {
|
||||
PROCESS_YIELD();
|
||||
eventhandler(ev, data);
|
||||
|
@ -47,7 +47,7 @@
|
||||
*
|
||||
* This file is part of the uIP TCP/IP stack.
|
||||
*
|
||||
* $Id: uip.h,v 1.27 2010/03/15 16:41:24 joxe Exp $
|
||||
* $Id: uip.h,v 1.28 2010/03/16 15:35:03 joxe Exp $
|
||||
*
|
||||
*/
|
||||
|
||||
@ -1356,21 +1356,11 @@ struct uip_udp_conn {
|
||||
extern struct uip_udp_conn *uip_udp_conn;
|
||||
extern struct uip_udp_conn uip_udp_conns[UIP_UDP_CONNS];
|
||||
|
||||
struct uip_router {
|
||||
int (*activate)(void);
|
||||
int (*deactivate)(void);
|
||||
uip_ipaddr_t *(*lookup)(uip_ipaddr_t *destipaddr, uip_ipaddr_t *nexthop);
|
||||
struct uip_fallback_interface {
|
||||
void (*init)(void);
|
||||
void (*output)(void);
|
||||
};
|
||||
|
||||
#if UIP_CONF_ROUTER
|
||||
extern const struct uip_router *uip_router;
|
||||
|
||||
/**
|
||||
* uIP routing driver registration function.
|
||||
*/
|
||||
void uip_router_register(const struct uip_router *router);
|
||||
#endif /*UIP_CONF_ROUTER*/
|
||||
|
||||
#if UIP_CONF_ICMP6
|
||||
struct uip_icmp6_conn {
|
||||
uip_icmp6_appstate_t appstate;
|
||||
|
Loading…
Reference in New Issue
Block a user