Handle node ID TLVs
This commit is contained in:
parent
4f7bd1e439
commit
ca758c85d2
1 changed files with 13 additions and 0 deletions
|
@ -136,6 +136,15 @@ static void handle_tlv_ihu(gmrf_t *gmrf, gmrf_context_t *ctx, const gp_babel_tlv
|
||||||
gmrf_logf(gmrf, LOG_DEBUG, "accepted IHU, txcost is %u, cost is %u now.", gp_babel_neigh_get_txcost(gmrf, neigh), gp_babel_neigh_get_cost(gmrf, neigh));
|
gmrf_logf(gmrf, LOG_DEBUG, "accepted IHU, txcost is %u, cost is %u now.", gp_babel_neigh_get_txcost(gmrf, neigh), gp_babel_neigh_get_cost(gmrf, neigh));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void handle_tlv_node_id(gmrf_t *gmrf, gmrf_context_t *ctx, const gp_babel_tlv_node_id_t *tlv_node_id, size_t len, handle_tlv_arg_t *arg) {
|
||||||
|
if (len < sizeof(gp_babel_tlv_node_id_t)) {
|
||||||
|
gmrf_logf(gmrf, LOG_WARNING, "received short node id TLV.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
arg->node_id = tlv_node_id->id;
|
||||||
|
}
|
||||||
|
|
||||||
static void handle_tlv(gmrf_t *gmrf, gmrf_context_t *ctx, gp_babel_tlv_type_t type, const void *data, size_t len, void *arg) {
|
static void handle_tlv(gmrf_t *gmrf, gmrf_context_t *ctx, gp_babel_tlv_type_t type, const void *data, size_t len, void *arg) {
|
||||||
handle_tlv_arg_t *tlv_arg = arg;
|
handle_tlv_arg_t *tlv_arg = arg;
|
||||||
|
|
||||||
|
@ -156,6 +165,10 @@ static void handle_tlv(gmrf_t *gmrf, gmrf_context_t *ctx, gp_babel_tlv_type_t ty
|
||||||
handle_tlv_ihu(gmrf, ctx, data, len, tlv_arg);
|
handle_tlv_ihu(gmrf, ctx, data, len, tlv_arg);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
case TLV_NODE_ID:
|
||||||
|
handle_tlv_node_id(gmrf, ctx, data, len, tlv_arg);
|
||||||
|
return;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
gmrf_logf(gmrf, LOG_DEBUG, "received unknown TLV %u on %s.", type, gmrf_iface_get_name(gmrf, tlv_arg->iface->gmrf_iface));
|
gmrf_logf(gmrf, LOG_DEBUG, "received unknown TLV %u on %s.", type, gmrf_iface_get_name(gmrf, tlv_arg->iface->gmrf_iface));
|
||||||
return;
|
return;
|
||||||
|
|
Reference in a new issue