In parallel to MPLS, I start enabling Segment Routing from FRR OSPF and/or IS-IS.
Unfortunately, I was not able to setup and OSPF or IS-IS adjacency with a router on a EdgeCore Wedge-100-32BF. After capture packet on Sonic and router (Juniper MX) side, I discovered that Hello message sent by the Juniper router are never reach the Sonic CPU. They seems dropped at the Barefoot level. Note that interface are correctly configured and that I can ping each other.
I activated LLDP and capture packet again as both OSPF, IS-IS and LLDP use multicast ethernet packet, but not exactly with the same MAC address: 01:80:c2:00:00:0e for LLDP, 01:80:c2:00:00:15 for IS-IS and 01:00:5e:00:00:05 for OSPF. If LLDP works fine, others packet using an multicast address seems dropped.
After looking to SAI doc and code, I understand that for each control protocol, the ASIC should be configured with the appropriate trap_id and a TRAP action if we would such control plane packet going to the CPU.
So, my question: how can I enable multicast packets for OSPF and IS-IS ? Where it is located in the code i.e. where LLDP is configured in order to understand how it is done ? And, in SAI/doc/spec.md it is mentioned that we could register new trap_id from a user perspective. Again, how can we do it ? Which command can be use to configure such trap_id ?
Thanks for your support.