aboutsummaryrefslogtreecommitdiffstats
path: root/vnet/vnet/dhcpv6/proxy.h
diff options
context:
space:
mode:
authorWojciech Dec <wdec@cisco.com>2016-11-01 16:44:06 +0100
committerWojciech Dec <wdec@cisco.com>2016-11-14 10:03:40 +0000
commit558d5ebbb4c93286f119658bd7dcbc9642c6974b (patch)
treee77009d9fb0e7f414dc5f032ad93fd689c6e54c7 /vnet/vnet/dhcpv6/proxy.h
parente30872e6606b4ce6fe1d6ff44be69e590427e45f (diff)
Add support for multi FIB DHCPv6 Proxy
- Support multiple DHCPv6 server targets across VRFs - Allows clients and servers to be in different VRFs - Aligns CLI and VAT for DHCPv6 to DHCPv4 Change-Id: If47756b3a51dc1b9d045a32b7d32ceb80c1746e2 Signed-off-by: Wojciech Dec <wdec@cisco.com>
Diffstat (limited to 'vnet/vnet/dhcpv6/proxy.h')
-rw-r--r--vnet/vnet/dhcpv6/proxy.h25
1 files changed, 16 insertions, 9 deletions
diff --git a/vnet/vnet/dhcpv6/proxy.h b/vnet/vnet/dhcpv6/proxy.h
index bc10d7ce17e..9e18913a970 100644
--- a/vnet/vnet/dhcpv6/proxy.h
+++ b/vnet/vnet/dhcpv6/proxy.h
@@ -46,22 +46,24 @@ typedef union {
} dhcpv6_vss_info;
typedef struct {
- /* server to which we we relay. $$$ vector / pool someday */
- ip6_address_t dhcpv6_server;
+ ip6_address_t dhcp6_server;
+ ip6_address_t dhcp6_src_address;
+ u32 insert_vss;
+ u32 server_fib6_index;
+ u32 valid;
+} dhcpv6_server_t;
- /* FIB index */
- u32 server_fib_index;
+typedef struct {
+ /* Pool of DHCP servers */
+ dhcpv6_server_t * dhcp6_servers;
- /* source address to paste into relayed pkts */
- ip6_address_t dhcpv6_src_address;
+ /* Pool of selected DHCP server. Zero is the default server */
+ u32 * dhcp6_server_index_by_rx_fib_index;
/* all DHCP servers address */
ip6_address_t all_dhcpv6_server_address;
ip6_address_t all_dhcpv6_server_relay_agent_address;
- /* true if the relay should insert option 82 */
- int insert_option;
-
/* to drop pkts in server-to-client direction */
u32 error_drop_node_index;
@@ -85,4 +87,9 @@ int dhcpv6_proxy_set_vss(u32 tbl_id,
u32 fib_id,
int is_del);
+int dhcpv6_proxy_set_server_2 (ip6_address_t *addr, ip6_address_t *src_address,
+ u32 rx_fib_id,
+ u32 server_fib_id,
+ int insert_vss, int is_del);
+
#endif /* included_dhcpv6_proxy_h */