bfd: add tracing support to bfd-process
[vpp.git] / src / vnet / bfd / bfd_udp.h
index 5080ec9..8f4bfee 100644 (file)
 #include <vnet/ip/ip6_packet.h>
 #include <vnet/bfd/bfd_api.h>
 
-/* *INDENT-OFF* */
 /** identifier of BFD session based on UDP transport only */
 typedef CLIB_PACKED (struct {
-  /** interface to which the session is tied */
-  u32 sw_if_index;
+  union {
+    /** interface to which the session is tied - single-hop */
+    u32 sw_if_index;
+    /** the FIB index the peer is in - multi-hop*/
+    u32 fib_index;
+  };
   /** local address */
   ip46_address_t local_addr;
   /** peer address */
   ip46_address_t peer_addr;
 }) bfd_udp_key_t;
-/* *INDENT-ON* */
 
 /** UDP transport specific data embedded in bfd_session's union */
 typedef struct
@@ -57,11 +59,12 @@ struct bfd_session_s;
 /**
  * @brief add the necessary transport layer by prepending it to existing data
  *
+ *
  * @param is_echo 1 if this is echo packet, 0 if control frame
  *
  * @return 1 on success, 0 on failure
  */
-int bfd_add_udp4_transport (vlib_main_t * vm, vlib_buffer_t * b,
+int bfd_add_udp4_transport (vlib_main_t * vm, u32 bi,
                            const struct bfd_session_s *bs, int is_echo);
 
 /**
@@ -71,9 +74,25 @@ int bfd_add_udp4_transport (vlib_main_t * vm, vlib_buffer_t * b,
  *
  * @return 1 on success, 0 on failure
  */
-int bfd_add_udp6_transport (vlib_main_t * vm, vlib_buffer_t * b,
+int bfd_add_udp6_transport (vlib_main_t * vm, u32 bi,
                            const struct bfd_session_s *bs, int is_echo);
 
+/**
+ * @brief transport packet over udpv4
+ *
+ * @return 1 on success, 0 on failure
+ */
+int bfd_transport_udp4 (vlib_main_t *vm, vlib_node_runtime_t *rt, u32 bi,
+                       const struct bfd_session_s *bs, int is_echo);
+
+/**
+ * @brief transport packet over udpv6
+ *
+ * @return 1 on success, 0 on failure
+ */
+int bfd_transport_udp6 (vlib_main_t *vm, vlib_node_runtime_t *rt, u32 bi,
+                       const struct bfd_session_s *bs, int is_echo);
+
 /**
  * @brief check if the bfd udp layer is echo-capable at this time
  *