diff options
author | Wojciech Dec <wdec@cisco.com> | 2016-11-01 16:44:06 +0100 |
---|---|---|
committer | Wojciech Dec <wdec@cisco.com> | 2016-11-14 10:03:40 +0000 |
commit | 558d5ebbb4c93286f119658bd7dcbc9642c6974b (patch) | |
tree | e77009d9fb0e7f414dc5f032ad93fd689c6e54c7 /vnet/vnet/dhcpv6/proxy.h | |
parent | e30872e6606b4ce6fe1d6ff44be69e590427e45f (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.h | 25 |
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 */ |