X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fadj%2Fadj_bfd.c;h=de7abfe447079a4e2fc1f7a02d3ee1c01cd2668d;hb=76447a740a6989db08dcd0fcbd066b193a875177;hp=a4e7e277298dca60101024c07dd87bb1d5a57a71;hpb=8a3e575dfca22500744df76c40de600d8aa61e12;p=vpp.git diff --git a/src/vnet/adj/adj_bfd.c b/src/vnet/adj/adj_bfd.c index a4e7e277298..de7abfe4470 100644 --- a/src/vnet/adj/adj_bfd.c +++ b/src/vnet/adj/adj_bfd.c @@ -34,11 +34,6 @@ typedef enum adj_bfd_state_t_ */ typedef struct adj_bfd_delegate_t_ { - /** - * Base class,linkage to the adjacency - */ - adj_delegate_t abd_link; - /** * BFD session state */ @@ -58,25 +53,21 @@ static adj_bfd_delegate_t *abd_pool; static inline adj_bfd_delegate_t* adj_bfd_from_base (adj_delegate_t *ad) { - if (NULL == ad) + if (NULL != ad) { - return (NULL); + return (pool_elt_at_index(abd_pool, ad->ad_index)); } - return ((adj_bfd_delegate_t*)((char*)ad - - STRUCT_OFFSET_OF(adj_bfd_delegate_t, - abd_link))); + return (NULL); } static inline const adj_bfd_delegate_t* adj_bfd_from_const_base (const adj_delegate_t *ad) { - if (NULL == ad) + if (NULL != ad) { - return (NULL); + return (pool_elt_at_index(abd_pool, ad->ad_index)); } - return ((adj_bfd_delegate_t*)((char*)ad - - STRUCT_OFFSET_OF(adj_bfd_delegate_t, - abd_link))); + return (NULL); } static adj_bfd_state_t @@ -183,7 +174,7 @@ adj_bfd_notify (bfd_listen_event_e event, abd->abd_state = ADJ_BFD_STATE_UP; abd->abd_index = session->bs_idx; - adj_delegate_add(adj_get(ai), ADJ_DELEGATE_BFD, &abd->abd_link); + adj_delegate_add(adj_get(ai), ADJ_DELEGATE_BFD, abd - abd_pool); } break;