X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fadj%2Fadj_delegate.h;h=9f7d8c64afca8bb5f514b8352373ed4208619899;hb=793c7fe5fcb224c8bf8f9a051be82eef5fd62ca1;hp=176512039d6e57a3be4ce465fe1921fa1912f3a2;hpb=c819fc612f9a79eaba2981dc2e8f7c31552db5ea;p=vpp.git diff --git a/src/vnet/adj/adj_delegate.h b/src/vnet/adj/adj_delegate.h index 176512039d6..9f7d8c64afc 100644 --- a/src/vnet/adj/adj_delegate.h +++ b/src/vnet/adj/adj_delegate.h @@ -91,6 +91,16 @@ typedef struct adj_delegate_t_ }; } adj_delegate_t; +/** + * An ADJ delegate virtual function table + */ +typedef void (*adj_delegate_last_lock_gone_t)(ip_adjacency_t *adj, adj_delegate_t *aed); +typedef u8 * (*adj_delegate_format_t)(const adj_delegate_t *aed, u8 *s); +typedef struct adj_delegate_vft_t_ { + adj_delegate_format_t adv_format; + adj_delegate_last_lock_gone_t adv_last_lock; +} adj_delegate_vft_t; + extern void adj_delegate_remove(ip_adjacency_t *adj, adj_delegate_type_t type); @@ -99,6 +109,7 @@ extern adj_delegate_t *adj_delegate_find_or_add(ip_adjacency_t *adj, extern adj_delegate_t *adj_delegate_get(const ip_adjacency_t *adj, adj_delegate_type_t type); -extern u8 *format_adj_deletegate(u8 * s, va_list * args); +extern u8 *format_adj_delegate(u8 * s, va_list * args); +extern void adj_delegate_register_type(adj_delegate_type_t type, const adj_delegate_vft_t *vft); #endif