Contiki 2.6

uIP packet forwarding

Data Structures

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

Files

file  uip-fw.c
 

uIP packet forwarding.


file  uip-fw.h
 

uIP packet forwarding header file.


Defines

#define UIP_FW_NETIF(ip1, ip2, ip3, ip4, nm1, nm2, nm3, nm4, outputfunc)
 Instantiating macro for a uIP network interface.
#define uip_fw_setipaddr(netif, addr)
 Set the IP address of a network interface.
#define uip_fw_setnetmask(netif, addr)
 Set the netmask of a network interface.
#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.
uint8_t uip_fw_output (void)
 Output an IP packet on the correct network interface.
uint8_t uip_fw_forward (void)
 Forward an IP packet in the uip_buf buffer.
void uip_fw_register (struct uip_fw_netif *netif)
 Register a network interface with the forwarding module.
void uip_fw_default (struct uip_fw_netif *netif)
 Register a default network interface.
void uip_fw_periodic (void)
 Perform periodic processing.

Define 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().

uint8_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.

uint8_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().