IPIP and SIXRD tunnels create API needs table-IDs not fib-indexes
[vpp.git] / src / vnet / srv6 / sr_steering.c
index a790375..a888fea 100755 (executable)
@@ -159,13 +159,15 @@ sr_steering_policy (int is_del, ip6_address_t * bsid, u32 sr_policy_index,
          /* If no more SR policies or steering policies */
          if (!pool_elts (sm->sr_policies) && !pool_elts (sm->steer_policies))
            {
-             fib_table_unlock (sm->fib_table_ip6, FIB_PROTOCOL_IP6);
-             fib_table_unlock (sm->fib_table_ip4, FIB_PROTOCOL_IP6);
+             fib_table_unlock (sm->fib_table_ip6,
+                               FIB_PROTOCOL_IP6, FIB_SOURCE_SR);
+             fib_table_unlock (sm->fib_table_ip4,
+                               FIB_PROTOCOL_IP6, FIB_SOURCE_SR);
              sm->fib_table_ip6 = (u32) ~ 0;
              sm->fib_table_ip4 = (u32) ~ 0;
            }
 
-         return 1;
+         return 0;
        }
       else                     /* It means user requested to update an existing SR steering policy */
        {
@@ -310,7 +312,7 @@ update_fib:
                                                 table_id : 0)),
                                &pfx, FIB_SOURCE_SR,
                                FIB_ENTRY_FLAG_LOOSE_URPF_EXEMPT,
-                               FIB_PROTOCOL_IP6,
+                               DPO_PROTO_IP6,
                                (ip46_address_t *) & sr_policy->bsid, ~0,
                                sm->fib_table_ip6, 1, NULL,
                                FIB_ROUTE_PATH_FLAG_NONE);
@@ -327,7 +329,7 @@ update_fib:
                                                 table_id : 0)),
                                &pfx, FIB_SOURCE_SR,
                                FIB_ENTRY_FLAG_LOOSE_URPF_EXEMPT,
-                               FIB_PROTOCOL_IP6,
+                               DPO_PROTO_IP6,
                                (ip46_address_t *) & sr_policy->bsid, ~0,
                                sm->fib_table_ip4, 1, NULL,
                                FIB_ROUTE_PATH_FLAG_NONE);
@@ -397,11 +399,10 @@ sr_steer_policy_command_fn (vlib_main_t * vm, unformat_input_t * input,
                            &sw_if_index))
        traffic_type = SR_STEER_L2;
       else if (!sr_policy_set
-              && unformat (input, "via sr policy index %d",
-                           &sr_policy_index))
+              && unformat (input, "via index %d", &sr_policy_index))
        sr_policy_set = 1;
       else if (!sr_policy_set
-              && unformat (input, "via sr policy bsid %U",
+              && unformat (input, "via bsid %U",
                            unformat_ip6_address, &bsid))
        sr_policy_set = 1;
       else if (fib_table == (u32) ~ 0
@@ -463,8 +464,8 @@ sr_steer_policy_command_fn (vlib_main_t * vm, unformat_input_t * input,
 /* *INDENT-OFF* */
 VLIB_CLI_COMMAND (sr_steer_policy_command, static) = {
   .path = "sr steer",
-  .short_help = "sr steer (del) [l3 <ip_addr/mask>|l2 <sf_if>]"
-    "via sr policy [index <sr_policy_index>|bsid <bsid_ip6_addr>]"
+  .short_help = "sr steer (del) [l3 <ip_addr/mask>|l2 <sf_if>] "
+    "via [index <sr_policy_index>|bsid <bsid_ip6_addr>] "
     "(fib-table <fib_table_index>)",
   .long_help =
     "\tSteer a L2 or L3 traffic through an existing SR policy.\n"
@@ -529,8 +530,8 @@ show_sr_steering_policies_command_fn (vlib_main_t * vm,
 
 /* *INDENT-OFF* */
 VLIB_CLI_COMMAND (show_sr_steering_policies_command, static) = {
-  .path = "show sr steering policies",
-  .short_help = "show sr steering policies",
+  .path = "show sr steering-policies",
+  .short_help = "show sr steering-policies",
   .function = show_sr_steering_policies_command_fn,
 };
 /* *INDENT-ON* */