diff options
| author | Olivier Dugeon <olivier.dugeon@orange.com> | 2021-03-09 11:00:32 +0100 |
|---|---|---|
| committer | Olivier Dugeon <olivier.dugeon@orange.com> | 2021-03-09 11:14:32 +0100 |
| commit | 270e66a2ceaeca0e6e3fde0150c36e2252de641f (patch) | |
| tree | c2ebe5567287791e4e2c301e107b6f98da9dad11 /ospfd/ospf_zebra.c | |
| parent | f79d311b3e0ea744cad115978b10bad2661afea9 (diff) | |
ospfd: Correct Segment Routing prefix bugs
This patch solves 2 Segment Routing prefix bugs:
- If Segment Routing is not enabled in the initial configuration, Extended
Prefix Opaque LSA is not flood. This is due to a control flag which is
set only when Segment Routing is enabled at startup and not latter.
- Attempting to modify Segment Routing prefix flag e.g. adding or removing
no-php or explicit-null flag, doesn't work as expected: Corresponding entry
in the MPLS table is not updated, Extended Prefix Opaque LSA carry wrong flag
value, and neighbor set a wrong configuration in the MPLS table for this
Segment Routing prefix.
The first bug is corrected in ospfd/ospf_ext.c:
- Flag setting is moved from ospf_ext_ism_change() to set_ext_prefix() function
The seconf one is corrected in ospfd/ospf_sr.c:
- For self node, previous MPLS entry is removed if needed and flag reset before
setting the new Segment Routing prefix configuration
- For neighbor node, srnext field of sr_prefix structure is always set and not
only for new SR Prefix.
Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
Diffstat (limited to 'ospfd/ospf_zebra.c')
| -rw-r--r-- | ospfd/ospf_zebra.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c index aaab274570..a2fbd01ab8 100644 --- a/ospfd/ospf_zebra.c +++ b/ospfd/ospf_zebra.c @@ -622,7 +622,7 @@ void ospf_zebra_update_prefix_sid(const struct sr_prefix *srp) znh->labels[0] = path->srni.label_out; osr_debug(" |- labels %u/%u", srp->label_in, - srp->nhlfe.label_out); + path->srni.label_out); /* Set TI-LFA backup nexthop info if present */ if (path->srni.backup_label_stack) { |
