summaryrefslogtreecommitdiffstats
path: root/src/vnet/mpls
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2017-07-15 07:37:25 -0700
committerDamjan Marion <dmarion.lists@gmail.com>2017-07-18 20:46:29 +0000
commit57b5860f013953ce161d05302e05370db9cd6ee2 (patch)
tree2d4cdbbc631848be4c43c599698019b2121e000b /src/vnet/mpls
parent51822bf07a3f0fe72834ea94659faf6e262475ba (diff)
FIB path preference
Paths are given a preference, lowest value is 'best'. Only paths that are up are up contribute to fprwarding - that's unchanged. What's new is that of the path's that re up only those that have the best preference contribute. A poor man's primary and backup. It's not true primary/backup function because the FIB must converge before the lower preference paths are used. Change-Id: Ie4453c4a7b1094c6c2b51fe1594b8302103bb68e Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vnet/mpls')
-rw-r--r--src/vnet/mpls/mpls.api3
-rw-r--r--src/vnet/mpls/mpls_api.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/src/vnet/mpls/mpls.api b/src/vnet/mpls/mpls.api
index c8a3ffb7422..61d7fe6c303 100644
--- a/src/vnet/mpls/mpls.api
+++ b/src/vnet/mpls/mpls.api
@@ -48,6 +48,7 @@ autoreply define mpls_ip_bind_unbind
@param mt_is_multicast - Is the tunnel's underlying LSP multicast
@param mt_next_hop_proto_is_ip4 - The next-hop is IPV4
@param mt_next_hop_weight - The weight, for UCMP
+ @param mt_next_hop_preference - The preference
@param mt_next_hop[16] - the nextop address
@param mt_next_hop_sw_if_index - the next-hop SW interface
@param mt_next_hop_table_id - the next-hop table-id (if appropriate)
@@ -64,6 +65,7 @@ define mpls_tunnel_add_del
u8 mt_is_multicast;
u8 mt_next_hop_proto_is_ip4;
u8 mt_next_hop_weight;
+ u8 mt_next_hop_preference;
u8 mt_next_hop[16];
u8 mt_next_hop_n_out_labels;
u32 mt_next_hop_sw_if_index;
@@ -181,6 +183,7 @@ autoreply define mpls_route_add_del
u8 mr_is_rpf_id;
u8 mr_next_hop_proto_is_ip4;
u8 mr_next_hop_weight;
+ u8 mr_next_hop_preference;
u8 mr_next_hop[16];
u8 mr_next_hop_n_out_labels;
u32 mr_next_hop_sw_if_index;
diff --git a/src/vnet/mpls/mpls_api.c b/src/vnet/mpls/mpls_api.c
index 6bfc491d344..22fb7d43a31 100644
--- a/src/vnet/mpls/mpls_api.c
+++ b/src/vnet/mpls/mpls_api.c
@@ -206,6 +206,7 @@ mpls_route_add_del_t_handler (vnet_main_t * vnm,
&nh, ntohl (mp->mr_next_hop_sw_if_index),
next_hop_fib_index,
mp->mr_next_hop_weight,
+ mp->mr_next_hop_preference,
ntohl (mp->mr_next_hop_via_label),
label_stack));
}