Routing API: added ext_header_hbh_update
This commit is contained in:
parent
54655335c6
commit
25e07b7d23
|
@ -875,13 +875,10 @@ ext_hdr_options_process(void)
|
||||||
* Using this fix, the header is ignored, and the next header (if
|
* Using this fix, the header is ignored, and the next header (if
|
||||||
* present) is processed.
|
* present) is processed.
|
||||||
*/
|
*/
|
||||||
#if UIP_CONF_IPV6_RPL
|
if(!NETSTACK_ROUTING.ext_header_hbh_update(uip_ext_opt_offset)) {
|
||||||
LOG_DBG("Processing RPL option\n");
|
|
||||||
if(!rpl_ext_header_hbh_update(uip_ext_opt_offset)) {
|
|
||||||
LOG_ERR("RPL Option Error: Dropping Packet\n");
|
LOG_ERR("RPL Option Error: Dropping Packet\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
#endif /* UIP_CONF_IPV6_RPL */
|
|
||||||
uip_ext_opt_offset += (UIP_EXT_HDR_OPT_BUF->len) + 2;
|
uip_ext_opt_offset += (UIP_EXT_HDR_OPT_BUF->len) + 2;
|
||||||
return 0;
|
return 0;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -81,6 +81,12 @@ ext_header_update(void)
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
static int
|
static int
|
||||||
|
ext_header_hbh_update(int uip_ext_opt_offset)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
static int
|
||||||
ext_header_srh_get_next_hop(uip_ipaddr_t *ipaddr)
|
ext_header_srh_get_next_hop(uip_ipaddr_t *ipaddr)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -95,6 +101,7 @@ const struct routing_driver nullrouting_driver = {
|
||||||
local_repair,
|
local_repair,
|
||||||
ext_header_remove,
|
ext_header_remove,
|
||||||
ext_header_update,
|
ext_header_update,
|
||||||
|
ext_header_hbh_update,
|
||||||
ext_header_srh_get_next_hop,
|
ext_header_srh_get_next_hop,
|
||||||
};
|
};
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
|
@ -87,6 +87,16 @@ struct routing_driver {
|
||||||
* \return 1 in case of success, 0 otherwise
|
* \return 1 in case of success, 0 otherwise
|
||||||
*/
|
*/
|
||||||
int (* ext_header_update)(void);
|
int (* ext_header_update)(void);
|
||||||
|
/**
|
||||||
|
* Process and update the routing protocol hob-by-hop
|
||||||
|
* extention headers of the current uIP packet.
|
||||||
|
*
|
||||||
|
* \param uip_ext_opt_offset The offset within the uIP packet where
|
||||||
|
* extension headers start
|
||||||
|
* \return 1 in case the packet is valid and to be processed further,
|
||||||
|
* 0 in case the packet must be dropped.
|
||||||
|
*/
|
||||||
|
int (* ext_header_hbh_update)(int uip_ext_opt_offset);
|
||||||
/**
|
/**
|
||||||
* Look for next hop from SRH of current uIP packet.
|
* Look for next hop from SRH of current uIP packet.
|
||||||
*
|
*
|
||||||
|
|
|
@ -380,6 +380,7 @@ const struct routing_driver rpl_classic_driver = {
|
||||||
local_repair,
|
local_repair,
|
||||||
rpl_ext_header_remove,
|
rpl_ext_header_remove,
|
||||||
rpl_ext_header_update,
|
rpl_ext_header_update,
|
||||||
|
rpl_ext_header_hbh_update,
|
||||||
rpl_ext_header_srh_get_next_hop,
|
rpl_ext_header_srh_get_next_hop,
|
||||||
};
|
};
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
|
@ -60,7 +60,8 @@ int rpl_ext_header_srh_get_next_hop(uip_ipaddr_t *ipaddr);
|
||||||
int rpl_ext_header_srh_update(void);
|
int rpl_ext_header_srh_update(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Process and update the RPL extension headers of the current uIP packet.
|
* Process and update the RPL hop-by-hop extension headers of
|
||||||
|
* the current uIP packet.
|
||||||
*
|
*
|
||||||
* \param uip_ext_opt_offset The offset within the uIP packet where
|
* \param uip_ext_opt_offset The offset within the uIP packet where
|
||||||
* extension headers start
|
* extension headers start
|
||||||
|
@ -70,7 +71,7 @@ int rpl_ext_header_srh_update(void);
|
||||||
int rpl_ext_header_hbh_update(int uip_ext_opt_offset);
|
int rpl_ext_header_hbh_update(int uip_ext_opt_offset);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds/updates RPL extension headers to current uIP packet.
|
* Adds/updates all RPL extension headers to current uIP packet.
|
||||||
*
|
*
|
||||||
* \return 1 in case of success, 0 otherwise
|
* \return 1 in case of success, 0 otherwise
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -202,6 +202,7 @@ const struct routing_driver rpl_lite_driver = {
|
||||||
rpl_local_repair,
|
rpl_local_repair,
|
||||||
rpl_ext_header_remove,
|
rpl_ext_header_remove,
|
||||||
rpl_ext_header_update,
|
rpl_ext_header_update,
|
||||||
|
rpl_ext_header_hbh_update,
|
||||||
rpl_ext_header_srh_get_next_hop,
|
rpl_ext_header_srh_get_next_hop,
|
||||||
};
|
};
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
Loading…
Reference in New Issue