diff options
author | Mauro Sardara <msardara@cisco.com> | 2023-02-09 16:02:33 +0000 |
---|---|---|
committer | Mauro Sardara <msardara@cisco.com> | 2023-02-09 16:07:01 +0000 |
commit | 6186945f88556619bdd9eec9f49e3c0fd3aedaf1 (patch) | |
tree | 624173068d6866d1743833ab5ebedb5a19bf9f10 /hicn-plugin/src/faces/face.h | |
parent | 95fb62e1aacca53c750c40845aee4b10963d7c57 (diff) |
feat(hicn-plugin): specify the dpo_proto when creating a new face
Ticket: HICN-841
Change-Id: I4c5684db936835a0748715680cfbbc22ada642ff
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Diffstat (limited to 'hicn-plugin/src/faces/face.h')
-rw-r--r-- | hicn-plugin/src/faces/face.h | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/hicn-plugin/src/faces/face.h b/hicn-plugin/src/faces/face.h index b23cb9b12..2c0a09a28 100644 --- a/hicn-plugin/src/faces/face.h +++ b/hicn-plugin/src/faces/face.h @@ -453,7 +453,7 @@ hicn_face_get_with_dpo (const ip46_address_t *addr, u32 sw_if, * reachable ip address, otherwise HICN_ERROR_NONE */ int hicn_face_add (const dpo_id_t *dpo_nh, ip46_address_t *nat_address, - int sw_if, hicn_face_id_t *pfaceid); + int sw_if, hicn_face_id_t *pfaceid, dpo_proto_t dpo_proto); /** * @brief Create a new incomplete face ip. (Meant to be used by the data plane) @@ -524,6 +524,7 @@ hicn_face_ip4_find (hicn_face_id_t *index, u8 *hicnb_flags, u32 node_index) { int ret = HICN_ERROR_FACE_NOT_FOUND; + hicn_face_id_t face_id; /*All (complete) faces are indexed by remote addess as well */ /* if the face exists, it adds a lock */ @@ -533,11 +534,13 @@ hicn_face_ip4_find (hicn_face_id_t *index, u8 *hicnb_flags, if (face != NULL) { /* unlock the face. We don't take a lock on each interest we receive */ - hicn_face_id_t face_id = hicn_dpoi_get_index (face); + face_id = hicn_dpoi_get_index (face); hicn_face_unlock_with_id (face_id); - ret = HICN_ERROR_FACE_ALREADY_CREATED; + *hicnb_flags = HICN_BUFFER_FLAGS_DEFAULT; - *index = hicn_dpoi_get_index (face); + *index = face_id; + + ret = HICN_ERROR_FACE_ALREADY_CREATED; } return ret; @@ -621,6 +624,7 @@ hicn_face_ip6_find (hicn_face_id_t *index, u8 *hicnb_flags, u32 node_index) { int ret = HICN_ERROR_FACE_NOT_FOUND; + hicn_face_id_t face_id; hicn_face_t *face = hicn_face_get ((const ip46_address_t *) nat_addr, sw_if, &hicn_face_hashtb, adj_index); @@ -628,11 +632,12 @@ hicn_face_ip6_find (hicn_face_id_t *index, u8 *hicnb_flags, if (face != NULL) { /* unlock the face. We don't take a lock on each interest we receive */ - hicn_face_id_t face_id = hicn_dpoi_get_index (face); + face_id = hicn_dpoi_get_index (face); hicn_face_unlock_with_id (face_id); - ret = HICN_ERROR_FACE_ALREADY_CREATED; *hicnb_flags = HICN_BUFFER_FLAGS_DEFAULT; - *index = hicn_dpoi_get_index (face); + *index = face_id; + + ret = HICN_ERROR_FACE_ALREADY_CREATED; } return ret; |