Commit 7d540cb
authored
[fpmsyncd]: Fix uA SID programming for link-local adjacencies (#3958)
* [fpmsyncd]: Fix uA SID programming for link-local adjacencies
A uA SID performs a shift and cross-connect to a direct neighbor
over a specific interface. It is defined by two parameters: an
interface and a nexthop IPv6 address.
When FRR sends a uA SID to SONiC's fpmsyncd, it includes both of
these parameters. However, fpmsyncd currently only extracts the
nexthop IPv6 address. It then creates an entry in the
SRV6_MY_SID_TABLE of ApplDB with action=ua and
adj=<nexthop_ipv6_address>. Subsequently, OrchAgent retrieves this
entry and attempts to resolve the adjacency to program the SID in
the ASIC.
The issue is that fpmsyncd extracts the nexthop IPv6 address from
the message but does not extract the interface. In cases where the
nexthop IPv6 address is a link-local address, the interface is
essential for successful nexthop resolution. Without it, the
resolution fails, and the SID is not programmed in the ASIC.
For example, the following syslog messages show OrchAgent failing to
resolve a link-local nexthop because the interface is missing:
```
Oct 27 08:31:19.345821 1cdc490d8ce2 INFO #orchagent: :- doTask: table name : SRV6_MY_SID_TABLE
Oct 27 08:31:19.345895 1cdc490d8ce2 INFO #orchagent: :- createUpdateMysidEntry: MY SID STRING fcbb:bbbb:1:fe10::
Oct 27 08:31:19.345912 1cdc490d8ce2 INFO #orchagent: :- createUpdateMysidEntry: MySid: sid fcbb:bbbb:1:fe10::, action ua, vrf , block 32, node 16, func 16, arg 0 dt_vrf , adj fe80::e822:daff:feab:3ee9
Oct 27 08:31:19.345946 1cdc490d8ce2 INFO #orchagent: :- createUpdateMysidEntry: Adjacency fe80::e822:daff:feab:3ee9
Oct 27 08:31:19.345965 1cdc490d8ce2 INFO #orchagent: :- createUpdateMysidEntry: Nexthop for adjacency fe80::e822:daff:feab:3ee9 doesn't exist in DB yet
Oct 27 08:31:19.345983 1cdc490d8ce2 ERR #orchagent: :- doTaskMySidTable: Failed to create/update my_sid entry for sid 32:16:16:0:fcbb:bbbb:1:fe10::
```1 parent 8541200 commit 7d540cb
File tree
5 files changed
+101
-11
lines changed- fpmsyncd
- tests/mock_tests/fpmsyncd
5 files changed
+101
-11
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
99 | 99 | | |
100 | 100 | | |
101 | 101 | | |
| 102 | + | |
102 | 103 | | |
103 | 104 | | |
104 | 105 | | |
| |||
447 | 448 | | |
448 | 449 | | |
449 | 450 | | |
450 | | - | |
| 451 | + | |
451 | 452 | | |
452 | 453 | | |
453 | 454 | | |
454 | 455 | | |
| 456 | + | |
455 | 457 | | |
456 | 458 | | |
457 | 459 | | |
| |||
493 | 495 | | |
494 | 496 | | |
495 | 497 | | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
496 | 504 | | |
497 | 505 | | |
498 | 506 | | |
| 507 | + | |
499 | 508 | | |
500 | 509 | | |
501 | 510 | | |
| |||
504 | 513 | | |
505 | 514 | | |
506 | 515 | | |
507 | | - | |
| 516 | + | |
508 | 517 | | |
509 | | - | |
| 518 | + | |
510 | 519 | | |
511 | 520 | | |
512 | 521 | | |
| |||
1384 | 1393 | | |
1385 | 1394 | | |
1386 | 1395 | | |
| 1396 | + | |
1387 | 1397 | | |
1388 | 1398 | | |
1389 | 1399 | | |
1390 | 1400 | | |
1391 | | - | |
| 1401 | + | |
1392 | 1402 | | |
1393 | 1403 | | |
1394 | 1404 | | |
| |||
1490 | 1500 | | |
1491 | 1501 | | |
1492 | 1502 | | |
| 1503 | + | |
| 1504 | + | |
| 1505 | + | |
| 1506 | + | |
| 1507 | + | |
| 1508 | + | |
| 1509 | + | |
1493 | 1510 | | |
1494 | 1511 | | |
1495 | 1512 | | |
| |||
1513 | 1530 | | |
1514 | 1531 | | |
1515 | 1532 | | |
| 1533 | + | |
| 1534 | + | |
| 1535 | + | |
| 1536 | + | |
| 1537 | + | |
1516 | 1538 | | |
1517 | 1539 | | |
1518 | 1540 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
285 | 285 | | |
286 | 286 | | |
287 | 287 | | |
288 | | - | |
| 288 | + | |
289 | 289 | | |
290 | 290 | | |
291 | 291 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
569 | 569 | | |
570 | 570 | | |
571 | 571 | | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
572 | 624 | | |
573 | 625 | | |
574 | 626 | | |
| |||
1014 | 1066 | | |
1015 | 1067 | | |
1016 | 1068 | | |
1017 | | - | |
| 1069 | + | |
1018 | 1070 | | |
1019 | 1071 | | |
1020 | 1072 | | |
| |||
1042 | 1094 | | |
1043 | 1095 | | |
1044 | 1096 | | |
1045 | | - | |
| 1097 | + | |
1046 | 1098 | | |
1047 | 1099 | | |
1048 | 1100 | | |
| |||
1182 | 1234 | | |
1183 | 1235 | | |
1184 | 1236 | | |
1185 | | - | |
| 1237 | + | |
1186 | 1238 | | |
1187 | 1239 | | |
1188 | 1240 | | |
| |||
1210 | 1262 | | |
1211 | 1263 | | |
1212 | 1264 | | |
1213 | | - | |
| 1265 | + | |
1214 | 1266 | | |
1215 | 1267 | | |
1216 | 1268 | | |
| |||
1238 | 1290 | | |
1239 | 1291 | | |
1240 | 1292 | | |
1241 | | - | |
| 1293 | + | |
1242 | 1294 | | |
1243 | 1295 | | |
1244 | 1296 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
219 | 219 | | |
220 | 220 | | |
221 | 221 | | |
| 222 | + | |
222 | 223 | | |
223 | 224 | | |
224 | 225 | | |
| |||
354 | 355 | | |
355 | 356 | | |
356 | 357 | | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
357 | 365 | | |
358 | 366 | | |
359 | 367 | | |
| |||
451 | 459 | | |
452 | 460 | | |
453 | 461 | | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
454 | 469 | | |
455 | 470 | | |
456 | 471 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| 64 | + | |
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
| |||
105 | 106 | | |
106 | 107 | | |
107 | 108 | | |
108 | | - | |
| 109 | + | |
109 | 110 | | |
110 | 111 | | |
111 | 112 | | |
| |||
0 commit comments