Source Lookup progammable via API
[vpp.git] / src / vnet / fib / fib_types.h
index a209ff3..7eadbb9 100644 (file)
@@ -32,9 +32,9 @@ typedef u32 fib_node_index_t;
  * Protocol Type. packed so it consumes a u8 only
  */
 typedef enum fib_protocol_t_ {
-    FIB_PROTOCOL_IP4 = 0,
-    FIB_PROTOCOL_IP6,
-    FIB_PROTOCOL_MPLS,
+    FIB_PROTOCOL_IP4 = DPO_PROTO_IP4,
+    FIB_PROTOCOL_IP6 = DPO_PROTO_IP6,
+    FIB_PROTOCOL_MPLS = DPO_PROTO_MPLS,
 }  __attribute__ ((packed)) fib_protocol_t;
 
 #define FIB_PROTOCOLS {                        \
@@ -261,8 +261,8 @@ typedef enum fib_special_type_t_ {
     for (_item = FIB_TYPE_SPEICAL_FIRST;               \
         _item <= FIB_SPEICAL_TYPE_LAST; _item++)
 
-extern u8 * format_fib_protocol(u8 * s, va_list ap);
-extern u8 * format_vnet_link(u8 *s, va_list ap);
+extern u8 * format_fib_protocol(u8 * s, va_list *ap);
+extern u8 * format_vnet_link(u8 *s, va_list *ap);
 
 /**
  * Path flags from the control plane
@@ -303,6 +303,10 @@ typedef enum fib_route_path_flags_t_
      * A local path with a RPF-ID => multicast traffic
      */
     FIB_ROUTE_PATH_RPF_ID = (1 << 7),
+    /**
+     * A deag path using the packet's source not destination address.
+     */
+    FIB_ROUTE_PATH_SOURCE_LOOKUP = (1 << 8),
 } fib_route_path_flags_t;
 
 /**
@@ -338,7 +342,7 @@ typedef struct fib_route_path_t_ {
      * The protocol of the address below. We need this since the all
      * zeros address is ambiguous.
      */
-    fib_protocol_t frp_proto;
+    dpo_proto_t frp_proto;
 
     union {
        /**