ip: Router ID included in flow hash
[vpp.git] / src / vnet / ip / ip.c
index f76d519..5d0c770 100644 (file)
@@ -16,6 +16,8 @@
 #include <vnet/ip/ip.h>
 #include <vnet/fib/fib_table.h>
 
+u32 ip_flow_hash_router_id;
+
 u8
 ip_is_zero (ip46_address_t * ip46_address, u8 is_ip4)
 {
@@ -186,7 +188,28 @@ ip_feature_enable_disable (ip_address_family_t af,
                                 n_feature_config_bytes);
 }
 
+int
+ip_flow_hash_set (ip_address_family_t af, u32 table_id, u32 flow_hash_config)
+{
+  fib_protocol_t fproto;
+  u32 fib_index;
+
+  fproto = ip_address_family_to_fib_proto (af);
+  fib_index = fib_table_find (fproto, table_id);
+
+  if (~0 == fib_index)
+    return VNET_API_ERROR_NO_SUCH_FIB;
+
+  fib_table_set_flow_hash_config (fib_index, fproto, flow_hash_config);
 
+  return 0;
+}
+
+void
+ip_flow_hash_router_id_set (u32 router_id)
+{
+  ip_flow_hash_router_id = router_id;
+}
 
 u8 *
 format_ip_address_family (u8 * s, va_list * args)