X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fdhcp%2Fdhcp.api;h=30ead3200893b21593e8b1bf32589b0961f1125c;hb=daff1784037376f4a5caec2f5975f9b5fc23d5a4;hp=a2803728dd9b8332d7471daef13b47ce6e3ea993;hpb=4729b1ec83855268adcea3e00a3462c06a631075;p=vpp.git diff --git a/src/vnet/dhcp/dhcp.api b/src/vnet/dhcp/dhcp.api index a2803728dd9..30ead320089 100644 --- a/src/vnet/dhcp/dhcp.api +++ b/src/vnet/dhcp/dhcp.api @@ -13,6 +13,8 @@ * limitations under the License. */ +option version = "2.0.0"; + /** \brief DHCP Proxy config add / del request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -40,8 +42,10 @@ autoreply define dhcp_proxy_config @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param tbl_id - table id - @param oui - first part of vpn id - @param fib_id - second part of vpn id + @vss_type - 0: use ASCI vpn_id; 1: use oui/vpn_index; 255: global vpn + @vpn_ascii - null terminated ASCII VPN ID up to 128 characters + @param oui - first part of rfc2685 vpn id, 3 bytes oui + @param vpn_index - second part of rfc2685 vpn id, 4 bytes vpn index @param is_ipv6 - ip6 if non-zero, else ip4 @param is_add - set vss if non-zero, else delete */ @@ -50,46 +54,61 @@ autoreply define dhcp_proxy_set_vss u32 client_index; u32 context; u32 tbl_id; + u8 vss_type; + u8 vpn_ascii_id[129]; u32 oui; - u32 fib_id; + u32 vpn_index; u8 is_ipv6; u8 is_add; }; -/** \brief DHCP Client config add / del request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request +/** \brief DHCP Client config data @param sw_if_index - index of the interface for DHCP client @param hostname - hostname - @param is_add - add the config if non-zero, else delete + @param id - Client ID - option 61 @param want_dhcp_event - DHCP event sent to the sender via dhcp_compl_event API message if non-zero + @param set_broadcast_flag - in the DHCP Discover to control + how the resulting OFFER is addressed. @param pid - sender's pid */ -autoreply define dhcp_client_config +typeonly define dhcp_client { - u32 client_index; - u32 context; u32 sw_if_index; u8 hostname[64]; - u8 is_add; + u8 id[64]; u8 want_dhcp_event; + u8 set_broadcast_flag; u32 pid; }; -/** \brief Tell client about a DHCP completion event +/** \brief DHCP Client config add / del request @param client_index - opaque cookie to identify the sender - @param pid - client pid registered to receive notification + @param context - sender context, to match reply w/ request + @param is_add - add the config if non-zero, else delete + @param client - client configuration data +*/ +autoreply define dhcp_client_config +{ + u32 client_index; + u32 context; + u8 is_add; + vl_api_dhcp_client_t client; +}; + +/** \brief Data learned by the client during the DHCP process + @param sw_if_index - the interface on which the client is configured + @param state - the state of the lease (see dhcp_client_state_t) @param is_ipv6 - if non-zero the address is ipv6, else ipv4 @param mask_width - The length of the subnet mask assigned @param host_address - Host IP address @param router_address - Router IP address @param host_mac - Host MAC address */ -define dhcp_compl_event +typeonly define dhcp_lease { - u32 client_index; - u32 pid; + u32 sw_if_index; + u8 state; u8 hostname[64]; u8 is_ipv6; u8 mask_width; @@ -98,6 +117,41 @@ define dhcp_compl_event u8 host_mac[6]; }; +/** \brief Tell client about a DHCP completion event + @param client_index - opaque cookie to identify the sender + @param pid - client pid registered to receive notification + @param lease - Data learned during the DHCP process; +*/ +define dhcp_compl_event +{ + u32 client_index; + u32 pid; + vl_api_dhcp_lease_t lease; +}; + +service { + rpc dhcp_client_config returns dhcp_client_config_reply events dhcp_compl_event; +}; + +/** \brief Dump the DHCP client configurations + */ +define dhcp_client_dump +{ + u32 client_index; + u32 context; +}; + +/** \brief DHCP Client details returned from dump + * @param client - The configured client + * @param lease - The learned lease data + */ +define dhcp_client_details +{ + u32 context; + vl_api_dhcp_client_t client; + vl_api_dhcp_lease_t lease; +}; + /** \brief Dump DHCP proxy table @param client_index - opaque cookie to identify the sender @param True for IPv6 proxy table @@ -124,6 +178,8 @@ manual_endian manual_print define dhcp_proxy_details u32 rx_vrf_id; u32 vss_oui; u32 vss_fib_id; + u8 vss_type; + u8 vss_vpn_ascii_id[129]; u8 is_ipv6; u8 dhcp_src_address[16]; u8 count;