From 7cd468a3d7dee7d6c92f69a0bb7061ae208ec727 Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Mon, 19 Dec 2016 23:05:39 +0100 Subject: Reorganize source tree to use single autotools instance Change-Id: I7b51f88292e057c6443b12224486f2d0c9f8ae23 Signed-off-by: Damjan Marion --- src/vnet/dhcp/proxy.h | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 src/vnet/dhcp/proxy.h (limited to 'src/vnet/dhcp/proxy.h') diff --git a/src/vnet/dhcp/proxy.h b/src/vnet/dhcp/proxy.h new file mode 100644 index 00000000..e12c0d00 --- /dev/null +++ b/src/vnet/dhcp/proxy.h @@ -0,0 +1,92 @@ +/* + * proxy.h: dhcp proxy + * + * Copyright (c) 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 included_dhcp_proxy_h +#define included_dhcp_proxy_h + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +typedef enum { +#define dhcp_proxy_error(n,s) DHCP_PROXY_ERROR_##n, +#include +#undef dhcp_proxy_error + DHCP_PROXY_N_ERROR, +} dhcp_proxy_error_t; + +typedef struct { + u32 oui; + u32 fib_id; +} vss_id; + +typedef union { + u8 as_u8[8]; + vss_id vpn_id; +} vss_info; + +typedef struct { + ip4_address_t dhcp_server; + ip4_address_t dhcp_src_address; + u32 insert_option_82; + u32 server_fib_index; + u32 valid; +} dhcp_server_t; + +typedef struct { + /* Pool of DHCP servers */ + dhcp_server_t * dhcp_servers; + + /* Pool of selected DHCP server. Zero is the default server */ + u32 * dhcp_server_index_by_rx_fib_index; + + /* to drop pkts in server-to-client direction */ + u32 error_drop_node_index; + + vss_info *opt82vss; + + /* hash lookup specific vrf_id -> option 82 vss suboption */ + uword * opt82vss_index_by_vrf_id; + + /* convenience */ + dhcp_client_main_t * dhcp_client_main; + vlib_main_t * vlib_main; + vnet_main_t * vnet_main; +} dhcp_proxy_main_t; + +dhcp_proxy_main_t dhcp_proxy_main; + +int dhcp_proxy_set_server (ip4_address_t *addr, ip4_address_t *src_address, + u32 fib_id, int insert_option_82, int is_del); + +int dhcp_proxy_set_server_2 (ip4_address_t *addr, ip4_address_t *src_address, + u32 rx_fib_id, + u32 server_fib_id, + int insert_option_82, int is_del); + +int dhcp_proxy_set_option82_vss(u32 vrf_id, + u32 oui, + u32 fib_id, + int is_del); +#endif /* included_dhcp_proxy_h */ -- cgit 1.2.3-korg