Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Adj Delegates; don't store raw pointers
[vpp.git]
/
src
/
vnet
/
adj
/
adj_bfd.c
diff --git
a/src/vnet/adj/adj_bfd.c
b/src/vnet/adj/adj_bfd.c
index
a4e7e27
..
de7abfe
100644
(file)
--- 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_
{
*/
typedef struct adj_bfd_delegate_t_
{
- /**
- * Base class,linkage to the adjacency
- */
- adj_delegate_t abd_link;
-
/**
* BFD session state
*/
/**
* 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)
{
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)
{
}
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
}
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;
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;
}
break;