Now tcpip_output() is a function pointer that is supposed to be set via the macro tcpip_set_outputfunc(). Packet drivers do so on process startup.
Thus if there are several packet drivers in a Contiki system the one started last is the one actually used. This behaviour is especially useful for the 'IP forwarding' "meta" packet driver.
typedef union uip_ip4addr_t {
u16_t u16[2];
u8_t u8[4];
} uip_ip4addr_t;
typedef uip_ip4addr_t uip_ipaddr_t;
This implies that one must consistently pass pointers to
uip_ipaddr_t:s and not mix and match pointers with
uip_ipaddr_t:s as was done earlier.