diff options
Diffstat (limited to 'hicn-plugin/src/mapme_ctrl.h')
-rw-r--r-- | hicn-plugin/src/mapme_ctrl.h | 44 |
1 files changed, 15 insertions, 29 deletions
diff --git a/hicn-plugin/src/mapme_ctrl.h b/hicn-plugin/src/mapme_ctrl.h index e7c1cdf64..9af4beccc 100644 --- a/hicn-plugin/src/mapme_ctrl.h +++ b/hicn-plugin/src/mapme_ctrl.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Cisco and/or its affiliates. + * Copyright (c) 2017-2020 Cisco and/or its affiliates. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: @@ -24,6 +24,11 @@ #include <vlib/vlib.h> #include <vnet/vnet.h> +/** + * @file mapme_ctrl.h + * + */ + /* Node context data */ typedef struct hicn_mapme_ctrl_runtime_s { @@ -42,8 +47,6 @@ typedef enum { HICN_MAPME_CTRL_NEXT_IP4_OUTPUT, HICN_MAPME_CTRL_NEXT_IP6_OUTPUT, - HICN_MAPME_CTRL_NEXT_UDP46_OUTPUT, - HICN_MAPME_CTRL_NEXT_UDP66_OUTPUT, HICN_MAPME_CTRL_NEXT_ERROR_DROP, HICN_MAPME_CTRL_N_NEXT, } hicn_mapme_ctrl_next_t; @@ -51,34 +54,17 @@ typedef enum * @brief Returns the next hop node on which we can send an ACK packet */ always_inline hicn_mapme_ctrl_next_t -hicn_mapme_get_dpo_iface_node (dpo_id_t * dpo) +hicn_mapme_ctrl_get_iface_node (hicn_face_id_t face_id) { - if (dpo->dpoi_type == hicn_face_ip_type) - { - switch (dpo->dpoi_proto) - { - case DPO_PROTO_IP4: - return HICN_MAPME_CTRL_NEXT_IP4_OUTPUT; - case DPO_PROTO_IP6: - return HICN_MAPME_CTRL_NEXT_IP6_OUTPUT; - default: - return HICN_MAPME_CTRL_NEXT_ERROR_DROP; - } - } - else if (dpo->dpoi_type == hicn_face_udp_type) - { - switch (dpo->dpoi_proto) - { - case DPO_PROTO_IP4: - return HICN_MAPME_CTRL_NEXT_UDP46_OUTPUT; - case DPO_PROTO_IP6: - return HICN_MAPME_CTRL_NEXT_UDP66_OUTPUT; - default: - return HICN_MAPME_CTRL_NEXT_ERROR_DROP; - } - } - else + hicn_face_t * face = hicn_dpoi_get_from_idx(face_id); + + switch (face->dpo.dpoi_proto) { + case DPO_PROTO_IP4: + return HICN_MAPME_CTRL_NEXT_IP4_OUTPUT; + case DPO_PROTO_IP6: + return HICN_MAPME_CTRL_NEXT_IP6_OUTPUT; + default: return HICN_MAPME_CTRL_NEXT_ERROR_DROP; } } |