RoutingTable

Macros

#define CSP_NODE_MAC   0xFF
 
#define CSP_ROUTE_COUNT   (CSP_ID_HOST_MAX + 2)
 
#define CSP_ROUTE_TABLE_SIZE   5 * CSP_ROUTE_COUNT
 
#define csp_route_set(node, ifc, mac)   csp_rtable_set(node, CSP_ID_HOST_SIZE, ifc, mac)
 Setup routing entry to single node (deprecated, please use csp_rtable_set) More...
 
#define csp_route_print_table()   csp_rtable_print();
 Print routing table (deprecated, please use csp_rtable_print) More...
 
#define csp_route_print_interfaces()   csp_iflist_print();
 Print list of interfaces (deprecated, please use csp_iflist_print) More...
 

Functions

csp_iface_tcsp_rtable_find_iface (uint8_t id)
 Find outgoing interface in routing table. More...
 
uint8_t csp_rtable_find_mac (uint8_t id)
 Find MAC address associated with node. More...
 
int csp_rtable_set (uint8_t node, uint8_t mask, csp_iface_t *ifc, uint8_t mac)
 Setup routing entry. More...
 
void csp_rtable_print (void)
 Print routing table to stdout. More...
 
void csp_route_table_load (uint8_t route_table_in[CSP_ROUTE_TABLE_SIZE])
 Load the routing table from a buffer (deprecated, please use new csp_rtable_load) More...
 
void csp_route_table_save (uint8_t route_table_out[CSP_ROUTE_TABLE_SIZE])
 Save the routing table to a buffer (deprecated, please use new csp_rtable_save) More...
 
int csp_rtable_save (char *buffer, int maxlen)
 Save routing table as a string to a buffer, which can be parsed again by csp_rtable_load. More...
 
void csp_rtable_load (char *buffer)
 Load routing table from a string in the format u/u s u. More...
 
int csp_rtable_check (char *buffer)
 Check string for valid routing table. More...
 
void csp_rtable_clear (void)
 Clear routing table: This could be done before load to ensure an entire clean table is loaded. More...
 

Macro Definition Documentation

#define CSP_NODE_MAC   0xFF
#define CSP_ROUTE_COUNT   (CSP_ID_HOST_MAX + 2)
#define csp_route_print_interfaces ( )    csp_iflist_print();

Print list of interfaces (deprecated, please use csp_iflist_print)

#define csp_route_print_table ( )    csp_rtable_print();

Print routing table (deprecated, please use csp_rtable_print)

#define csp_route_set (   node,
  ifc,
  mac 
)    csp_rtable_set(node, CSP_ID_HOST_SIZE, ifc, mac)

Setup routing entry to single node (deprecated, please use csp_rtable_set)

Parameters
nodeHost
ifcInterface
macMAC address
Returns
CSP error type
#define CSP_ROUTE_TABLE_SIZE   5 * CSP_ROUTE_COUNT

Function Documentation

void csp_route_table_load ( uint8_t  route_table_in[CSP_ROUTE_TABLE_SIZE])

Load the routing table from a buffer (deprecated, please use new csp_rtable_load)

Warning: The table will be RAW from memory and contains direct pointers, not interface names. Therefore it's very important that a saved routing table is deleted after a firmware update

Parameters
route_table_inpointer to routing table buffer
void csp_route_table_save ( uint8_t  route_table_out[CSP_ROUTE_TABLE_SIZE])

Save the routing table to a buffer (deprecated, please use new csp_rtable_save)

Warning: The table will be RAW from memory and contains direct pointers, not interface names. Therefore it's very important that a saved routing table is deleted after a firmware update

Parameters
route_table_outpointer to routing table buffer
int csp_rtable_check ( char *  buffer)

Check string for valid routing table.

Parameters
bufferPointer to string
Returns
number of valid entries found
void csp_rtable_clear ( void  )

Clear routing table: This could be done before load to ensure an entire clean table is loaded.

csp_iface_t* csp_rtable_find_iface ( uint8_t  id)

Find outgoing interface in routing table.

Parameters
idDestination node
Returns
pointer to outgoing interface or NULL
uint8_t csp_rtable_find_mac ( uint8_t  id)

Find MAC address associated with node.

Parameters
idDestination node
Returns
MAC address
void csp_rtable_load ( char *  buffer)

Load routing table from a string in the format u/u s u.

  • Address
  • Netmask
  • Ifname
  • Mac Address (this field is optional) An example routing string is "0/0 I2C, 8/2 KISS" The string must be \0 null terminated The string must NOT be const.
    Parameters
    bufferPointer to string
void csp_rtable_print ( void  )

Print routing table to stdout.

int csp_rtable_save ( char *  buffer,
int  maxlen 
)

Save routing table as a string to a buffer, which can be parsed again by csp_rtable_load.

Parameters
bufferpointer to buffer
maxlenlength of buffer
Returns
length of saved string
int csp_rtable_set ( uint8_t  node,
uint8_t  mask,
csp_iface_t ifc,
uint8_t  mac 
)

Setup routing entry.

Parameters
nodeHost
maskNumber of bits in netmask
ifcInterface
macMAC address
Returns
CSP error type