X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=blobdiff_plain;f=src%2Fplugins%2Fcnat%2Fcnat_snat.h;h=e34cf03bd921d4334d27a422348a74bf7a5daded;hp=6ebb8034dbcaf046185797aceb7b9f2252c8d171;hb=cc9a1a0d3;hpb=4d237874e5c9922330c62ac1b003a9a171c1bc3b diff --git a/src/plugins/cnat/cnat_snat.h b/src/plugins/cnat/cnat_snat.h index 6ebb8034dbc..e34cf03bd92 100644 --- a/src/plugins/cnat/cnat_snat.h +++ b/src/plugins/cnat/cnat_snat.h @@ -17,12 +17,28 @@ #define __CNAT_SNAT_H__ #include +#include +/* function to use to decide whether to snat connections in the output + feature */ +typedef void (*cnat_snat_policy_t) (vlib_main_t *vm, vlib_buffer_t *b, + cnat_session_t *session, + cnat_node_ctx_t *ctx, u8 *do_snat); + +typedef struct cnat_snat_policy_main_t_ +{ + /* SNAT policy for the output feature node */ + cnat_snat_policy_t snat_policy; + +} cnat_snat_policy_main_t; + +extern cnat_snat_policy_main_t cnat_snat_policy_main; extern void cnat_set_snat (ip4_address_t * ip4, ip6_address_t * ip6, u32 sw_if_index); extern int cnat_add_snat_prefix (ip_prefix_t * pfx); extern int cnat_del_snat_prefix (ip_prefix_t * pfx); +extern void cnat_set_snat_policy (cnat_snat_policy_t fp); int cnat_search_snat_prefix (ip46_address_t * addr, ip_address_family_t af);