X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fadj%2Fadj_delegate.h;h=d49c6661c192a1d8d347b5982982ad92b44e3d32;hb=282872127bbeee6ae59ab3f885c09bad601ee0cc;hp=c47380012f1576822b16d144719cea03eaf3b54e;hpb=76447a740a6989db08dcd0fcbd066b193a875177;p=vpp.git diff --git a/src/vnet/adj/adj_delegate.h b/src/vnet/adj/adj_delegate.h index c47380012f1..d49c6661c19 100644 --- a/src/vnet/adj/adj_delegate.h +++ b/src/vnet/adj/adj_delegate.h @@ -36,8 +36,14 @@ typedef enum adj_delegate_type_t_ { * BFD session state */ ADJ_DELEGATE_BFD, + /** + * Stacking of a midchain's nexthop + */ + ADJ_DELEGATE_MIDCHAIN, } adj_delegate_type_t; +#define ADJ_DELEGATE_LAST (ADJ_DELEGATE_MIDCHAIN) + /** * Adj delegate. This object is attached to the adjacency. */ @@ -71,12 +77,18 @@ typedef void (*adj_delegate_adj_deleted_t)(adj_delegate_t *aed); */ typedef u8 * (*adj_delegate_format_t)(const adj_delegate_t *aed, u8 *s); +/** + * Notification that an adjacency has been created + */ +typedef void (*adj_delegate_adj_created_t)(adj_index_t ai); + /** * An ADJ delegate virtual function table */ typedef struct adj_delegate_vft_t_ { adj_delegate_format_t adv_format; adj_delegate_adj_deleted_t adv_adj_deleted; + adj_delegate_adj_created_t adv_adj_created; } adj_delegate_vft_t; /** @@ -99,7 +111,6 @@ extern int adj_delegate_add(ip_adjacency_t *adj, adj_delegate_type_t fdt, index_t adi); - /** * @brief Get a delegate from an adjacency *