X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fip%2Fip.api;h=d6c5f6bcd021259dc37986a13b4206f68f5853eb;hb=4b9669dc116f6c9be5ef124e4aff7b201404b6ea;hp=282f531e4fb366a612e583492debf5a536caba23;hpb=e1b819efac7f8434f17d0482b631c2450e3dd5bb;p=vpp.git diff --git a/src/vnet/ip/ip.api b/src/vnet/ip/ip.api index 282f531e4fb..d6c5f6bcd02 100644 --- a/src/vnet/ip/ip.api +++ b/src/vnet/ip/ip.api @@ -19,7 +19,7 @@ called through a shared memory interface. */ -option version = "1.1.0"; +option version = "1.2.0"; import "vnet/fib/fib_types.api"; /** \brief Add / del table request @@ -304,6 +304,30 @@ define ip6nd_proxy_dump u32 context; }; +/** \brief Start / stop sending router solicitation + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param irt - initial retransmission time + @param mrt - maximum retransmission time + @param mrc - maximum retransmission count + @param mrd - maximum retransmission duration + @param sw_if_index - software interface index of interface + for sending router solicitation + @param stop - if non-zero then stop sending router solicitation, + otherwise start sending router solicitation +*/ +autoreply define ip6nd_send_router_solicitation +{ + u32 client_index; + u32 context; + u32 irt; + u32 mrt; + u32 mrc; + u32 mrd; + u32 sw_if_index; + u8 stop; +}; + /** \brief IPv6 interface enable / disable request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -699,6 +723,68 @@ define ip6_nd_event u8 mac_ip; }; +service { + rpc want_ip6_ra_events returns want_ip6_ra_events_reply + events ip6_ra_event; +}; + +/** \brief Register for ip6 router advertisement events + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param enable_disable - 1 => register for events, 0 => cancel registration + @param pid - sender's pid +*/ +autoreply define want_ip6_ra_events +{ + u32 client_index; + u32 context; + u8 enable_disable; + u32 pid; +}; + +/** \brief Struct representing RA prefix info + @param dst_address - RA prefix info destination address + @param dst_address_length - RA prefix info destination address length + @param flags - RA prefix info flags + @param valid_time - RA prefix info valid time + @param preferred_time - RA prefix info preferred time +*/ +typeonly define ip6_ra_prefix_info +{ + u8 dst_address[16]; + u8 dst_address_length; + u8 flags; + u32 valid_time; + u32 preferred_time; +}; + +/** \brief Tell client about a router advertisement event + @param client_index - opaque cookie to identify the sender + @param pid - client pid registered to receive notification + @param current_hop_limit - RA current hop limit + @param flags - RA flags + @param router_lifetime_in_sec - RA lifetime in seconds + @param neighbor_reachable_time_in_msec - RA neighbor reachable time in msec + @param time_in_msec_between_retransmitted_neighbor_solicitations - + time in msec between retransmitted neighbor solicitations + @param n_prefixes - + @param prefixes - +*/ +define ip6_ra_event +{ + u32 client_index; + u32 pid; + u32 sw_if_index; + u8 router_address[16]; + u8 current_hop_limit; + u8 flags; + u16 router_lifetime_in_sec; + u32 neighbor_reachable_time_in_msec; + u32 time_in_msec_between_retransmitted_neighbor_solicitations; + u32 n_prefixes; + vl_api_ip6_ra_prefix_info_t prefixes[n_prefixes]; +}; + service { rpc want_ip6_nd_events returns want_ip6_nd_events_reply events ip6_nd_event;