Contiki 2.5
Files | Data Structures | Macros | Functions
uIP packet forwarding

Files

file  uip-fw.c
 uIP packet forwarding.
 
file  uip-fw.h
 uIP packet forwarding header file.
 

Data Structures

struct  uip_fw_netif
 Representation of a uIP network interface. More...
 

Macros

#define UIP_FW_NETIF(ip1, ip2, ip3, ip4, nm1, nm2, nm3, nm4, outputfunc)
 Instantiating macro for a uIP network interface. More...
 
#define uip_fw_setipaddr(netif, addr)
 Set the IP address of a network interface. More...
 
#define uip_fw_setnetmask(netif, addr)
 Set the netmask of a network interface. More...
 
#define UIP_FW_LOCAL
 A non-error message that indicates that a packet should be processed locally.
 
#define UIP_FW_OK
 A non-error message that indicates that something went OK.
 
#define UIP_FW_FORWARDED
 A non-error message that indicates that a packet was forwarded.
 
#define UIP_FW_ZEROLEN
 A non-error message that indicates that a zero-length packet transmission was attempted, and that no packet was sent.
 
#define UIP_FW_TOOLARGE
 An error message that indicates that a packet that was too large for the outbound network interface was detected.
 
#define UIP_FW_NOROUTE
 An error message that indicates that no suitable interface could be found for an outbound packet.
 
#define UIP_FW_DROPPED
 An error message that indicates that a packet that should be forwarded or output was dropped.
 

Functions

void uip_fw_init (void)
 Initialize the uIP packet forwarding module.
 
u8_t uip_fw_output (void)
 Output an IP packet on the correct network interface. More...
 
u8_t uip_fw_forward (void)
 Forward an IP packet in the uip_buf buffer. More...
 
void uip_fw_register (struct uip_fw_netif *netif)
 Register a network interface with the forwarding module. More...
 
void uip_fw_default (struct uip_fw_netif *netif)
 Register a default network interface. More...
 
void uip_fw_periodic (void)
 Perform periodic processing.
 

Detailed Description

Macro Definition Documentation

#define UIP_FW_NETIF (   ip1,
  ip2,
  ip3,
  ip4,
  nm1,
  nm2,
  nm3,
  nm4,
  outputfunc 
)

Instantiating macro for a uIP network interface.

Example:

struct uip_fw_netif slipnetif =
{UIP_FW_NETIF(192,168,76,1, 255,255,255,0, slip_output)};
Parameters
ip1,ip2,ip3,ip4The IP address of the network interface.
nm1,nm2,nm3,nm4The netmask of the network interface.
outputfuncA pointer to the output function of the network interface.

Definition at line 80 of file uip-fw.h.

#define uip_fw_setipaddr (   netif,
  addr 
)

Set the IP address of a network interface.

Parameters
netifA pointer to the uip_fw_netif structure for the network interface.
addrA pointer to an IP address.

Definition at line 95 of file uip-fw.h.

#define uip_fw_setnetmask (   netif,
  addr 
)

Set the netmask of a network interface.

Parameters
netifA pointer to the uip_fw_netif structure for the network interface.
addrA pointer to an IP address representing the netmask.

Definition at line 107 of file uip-fw.h.

Function Documentation

void uip_fw_default ( struct uip_fw_netif netif)

Register a default network interface.

All packets that don't go out on any of the other interfaces will be routed to the default interface.

Parameters
netifA pointer to the network interface that is to be registered.

Definition at line 516 of file uip-fw.c.

Referenced by main().

u8_t uip_fw_forward ( void  )

Forward an IP packet in the uip_buf buffer.

Returns
UIP_FW_FORWARDED if the packet was forwarded, UIP_FW_LOCAL if the packet should be processed locally.

Definition at line 404 of file uip-fw.c.

References uip_appdata, UIP_FW_FORWARDED, UIP_FW_LOCAL, uip_fw_output(), UIP_HTONS, uip_ipaddr_cmp, uip_len, UIP_LLH_LEN, and UIP_REASSEMBLY.

u8_t uip_fw_output ( void  )

Output an IP packet on the correct network interface.

The IP packet should be present in the uip_buf buffer and its length in the global uip_len variable.

Return values
UIP_FW_ZEROLENIndicates that a zero-length packet transmission was attempted and that no packet was sent.
UIP_FW_NOROUTENo suitable network interface could be found for the outbound packet, and the packet was not sent.
Returns
The return value from the actual network interface output function is passed unmodified as a return value.

Definition at line 355 of file uip-fw.c.

References uip_fw_netif::next, NULL, uip_fw_netif::output, UIP_FW_NOROUTE, UIP_FW_OK, UIP_FW_ZEROLEN, uip_ipaddr_cmp, and uip_len.

Referenced by uip_fw_forward().

void uip_fw_register ( struct uip_fw_netif netif)

Register a network interface with the forwarding module.

Parameters
netifA pointer to the network interface that is to be registered.

Definition at line 499 of file uip-fw.c.

References uip_fw_netif::next.

Referenced by main().