/* *------------------------------------------------------------------ * cnat_bulk_port_defs.h bulk port alloc definitions * * Copyright (c) 2011-2013 Cisco and/or its affiliates. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *------------------------------------------------------------------ */ #ifndef __CNAT_BULK_PORT_H__ #define __CNAT_BULK_PORT_H__ #ifndef NO_BULK_LOGGING #include "cnat_bulk_port_defs.h" cnat_errno_t cnat_dynamic_port_alloc_v2_bulk ( cnat_portmap_v2_t *pm, port_alloc_t atype, port_pair_t pair_type, u32 *index, u32 *o_ipv4_address, u16 *o_port, u16 static_port_range, cnat_user_db_entry_t *udb, bulk_alloc_size_t bulk_size, int *nfv9_log_req, u16 ip_n_to_1, u32 *rseed_ip); void cnat_update_bulk_range_cache(cnat_user_db_entry_t *udb, u16 o_port, bulk_alloc_size_t bulk_size); void cnat_port_free_v2_bulk ( cnat_portmap_v2_t *pm, int index, port_pair_t ptype, u16 base_port, cnat_user_db_entry_t *udb, u16 static_port_range, bulk_alloc_size_t bulk_size, int *nfv9_log_req); cnat_errno_t cnat_static_port_alloc_v2_bulk ( cnat_portmap_v2_t *pm, port_alloc_t atype, port_pair_t pair_type, u32 i_ipv4_address, u16 i_port, u32 *index, u32 *o_ipv4_address, u16 *o_port, u16 static_port_range, cnat_user_db_entry_t *udb, bulk_alloc_size_t bulk_size, int *nfv9_log_req, u16 ip_n_to_1 ); cnat_errno_t cnat_dynamic_port_alloc_rtsp_bulk ( cnat_portmap_v2_t *pm, port_alloc_t atype, port_pair_t pair_type, u16 i_port, u32 *index, u32 *o_ipv4_address, u16 *o_port, u16 static_port_range, cnat_user_db_entry_t *udb, bulk_alloc_size_t bulk_size, int *nfv9_log_req, u32 *rseed_ip); cnat_errno_t cnat_mapped_static_port_alloc_v2_bulk ( cnat_portmap_v2_t *pm, port_alloc_t atype, u32 *index, u32 ipv4_address, u16 port, cnat_user_db_entry_t *udb, bulk_alloc_size_t bulk_size, int *nfv9_log_req, u16 ip_n_to_1 ); #else /* NO_BULK_LOGGING */ /* use older code */ inline cnat_errno_t cnat_dynamic_port_alloc_v2_bulk ( cnat_vrfmap_t *vrf_map, port_alloc_t atype, port_pair_t pair_type, u32 *index, u32 *o_ipv4_address, u16 *o_port, u16 static_port_range, u16 ip_n_to_1, u32 *rseed_ip ) { return cnat_dynamic_port_alloc_v2(vrf_map->portmap_list, atype, pair_type, index, o_ipv4_address, o_port, static_port_range, ip_n_to_1, rseed_ip); } inline void cnat_port_free_v2_bulk ( cnat_portmap_v2_t *pm, int index, port_pair_t ptype, u16 base_port, cnat_user_db_entry_t *udb, u16 static_port_range); { return cnat_port_free_v2(pm, index, ptype, base_port, static_port_range); } inline cnat_errno_t cnat_static_port_alloc_v2_bulk ( cnat_portmap_v2_t *pm, port_alloc_t atype, port_pair_t pair_type, u32 i_ipv4_address, u16 i_port, u32 *index, u32 *o_ipv4_address, u16 *o_port, u16 static_port_range) { return cnat_static_port_alloc_v2 (pm, atype, pair_type, i_ipv4_address, i_port, index, o_ipv4_address, o_port); } inline cnat_errno_t cnat_mapped_static_port_alloc_v2_bulk ( cnat_portmap_v2_t *pm, port_alloc_t atype, u32 *index, u32 ipv4_address, u16 port) { return cnat_mapped_static_port_alloc_v2(pm, atype, index ipv4_address, port); } #endif /* NO_BULK_LOGGING */ #endif /* __CNAT_BULK_PORT_H__ */