acl-plugin: acl-as-a-service: VPP-1248: fix the error if exports.h included in more... 69/11969/9
authorAndrew Yourtchenko <ayourtch@gmail.com>
Tue, 15 May 2018 15:25:50 +0000 (17:25 +0200)
committerDave Barach <openvpp@barachs.net>
Wed, 20 Jun 2018 13:37:21 +0000 (13:37 +0000)
commit22f9fb1286d2469819cfcef68ffdc258f4d52c24
treeed8b86ab0fedcb78c9cc83f98f417f61747736bc
parent285434a858d2b53b15c572ad491b9ca3b40fcef3
acl-plugin: acl-as-a-service: VPP-1248: fix the error if exports.h included in more than one C file

Including the exports.h from multiple .c files belonging to a single plugin results in an error.

Rework the approach to require the table of function pointers to be filled in by
the initialization function.

Since the inline functions are compiled in the "caller" context,
there is no knowledge about the acl_main structure used by the ACL
plugin. To help with that, the signature of inline functions is slightly
different, taking the p_acl_main pointer as the first parameter.

That pointer is filled into the .p_acl_main field of the method
table during the initialization - since the calling of non-inline variants
would have required filling the method table, this should give
minimal headaches during the use and switch between the two methods.

Change-Id: Icb70695efa23579c46c716944838766cebc8573e
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
src/plugins/abf/abf_itf_attach.c
src/plugins/acl.am
src/plugins/acl/acl.c
src/plugins/acl/acl.h
src/plugins/acl/acl_lookup_context.md
src/plugins/acl/dataplane_node.c
src/plugins/acl/exported_types.h [new file with mode: 0644]
src/plugins/acl/fa_node.h
src/plugins/acl/lookup_context.c
src/plugins/acl/public_inlines.h