Microchip® Advanced Software Framework

uip_mcast6_driver Struct Reference

#include <uip-mcast6.h>

Data Fields

uint8_t(* in )(void)
 Process an incoming multicast datagram and determine whether it should be delivered up the stack or not. More...
 
void(* init )(void)
 Initialize the multicast engine. More...
 
char * name
 
void(* out )(void)
 Process an outgoing datagram with a multicast IPv6 destination address. More...
 

uint8_t(* uip_mcast6_driver::in)(void)

Process an incoming multicast datagram and determine whether it should be delivered up the stack or not.

Returns
0: Drop, 1: Deliver
   When a datagram with a multicast destination address is received,
   the forwarding logic in core is bypassed. Instead, we let the
   multicast engine handle forwarding internally if and as necessary.
   This function is where forwarding logic must be hooked in.

   Once the engine is done with forwarding, it must signal via the
   return value whether the datagram needs delivered up the network
   stack.

Referenced by uip_process().

void(* uip_mcast6_driver::init)(void)

Initialize the multicast engine.

Referenced by uip_init().

char* uip_mcast6_driver::name
void(* uip_mcast6_driver::out)(void)

Process an outgoing datagram with a multicast IPv6 destination address.

This may be needed if the multicast engine needs to, for example, add IPv6 extension headers to the datagram, cache it, decide it needs dropped etc.

It is sometimes desirable to let the engine handle datagram dispatch instead of letting the networking core do it. If the engine decides to send the datagram itself, it must afterwards set uip_len = 0 to prevent the networking core from sending too

Referenced by uip_udp_packet_send().