OSPF & IS-IS support

18 views
Skip to first unread message

Olivier Dugeon

unread,
Sep 13, 2021, 9:08:29 AMSep 13
to sonicproject
Dear all,

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.

Regards

Olivier

Christian Svensson

unread,
Sep 13, 2021, 5:17:37 PMSep 13
to sonicproject
Hi,

On Monday, September 13, 2021 at 3:08:29 PM UTC+2 olivier...@gmail.com wrote:
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.

Yes, I believe that's correct. You can find this in https://github.com/Azure/sonic-buildimage/blob/master/files/image_config/copp/copp_cfg.j2 as far as I know.

I believe that using any other routing protocol than BGP is currently unsupported and not on the roadmap but best of luck hacking it to work! Please share if you get it to run :-).

Regards,

Olivier Dugeon

unread,
Sep 14, 2021, 1:30:21 PMSep 14
to sonicproject
Hi Christian,

Thanks for the tip. I patch the copp_cfg.j2 to add ospf and regenerate copp_cfg.json file. Once reload, I got the OSPF Hello packet from the Juniper :-) but I got now an OSPF problem to have the adjacency up & running. Certainly a configuration mismatch between FRR and the Juniper.

BTW, I didn't find equivalent keyword for IS-IS. I search in the code for IS-IS or iso but didn't find any keyword for the trap_ids. I believe this trap_ids where define in some file and associated to the MAC address. Do you know where this is located in order to add IS-IS with appropriate MAC address definition to create a new trap_ids ?

Regards

Olivier

Christian Svensson

unread,
Sep 14, 2021, 2:22:58 PMSep 14
to Olivier Dugeon, sonicproject
Hi Olivier,

On Tue, Sep 14, 2021 at 7:30 PM Olivier Dugeon <olivier...@gmail.com> wrote:
BTW, I didn't find equivalent keyword for IS-IS. I search in the code for IS-IS or iso but didn't find any keyword for the trap_ids. [..] Do you know where this is located in order to add IS-IS [..]?

While I do not understand what you mean with MAC address, the trap ID mapping is defined here:
and here:
It seems that ISIS was a pretty recent addition to SAI: https://github.com/opencomputeproject/SAI/pull/1238. There is an open PR a few days ago that adds ISIS to SWSS as well: https://github.com/Azure/sonic-swss/pull/1890

Hopefully that is somewhat helpful.

Regards,

Olivier Dugeon

unread,
Sep 14, 2021, 3:22:32 PMSep 14
to Christian Svensson, sonicproject
Christian,

Le mar. 14 sept. 2021 à 20:22, Christian Svensson <chri...@cmd.nu> a écrit :
Hi Olivier,

On Tue, Sep 14, 2021 at 7:30 PM Olivier Dugeon <olivier...@gmail.com> wrote:
BTW, I didn't find equivalent keyword for IS-IS. I search in the code for IS-IS or iso but didn't find any keyword for the trap_ids. [..] Do you know where this is located in order to add IS-IS [..]?

While I do not understand what you mean with MAC address, the trap ID mapping is defined here:
 
Fine. It is exactly what I'm looking for. But what I didn't find is where SAI_HOSTIF_TRAP_xxx are defined.
 
Now I understand that I should also have a look to the SAI project itself and not only the SONIC project.

It seems that ISIS was a pretty recent addition to SAI: https://github.com/opencomputeproject/SAI/pull/1238. There is an open PR a few days ago that adds ISIS to SWSS as well: https://github.com/Azure/sonic-swss/pull/1890
 
OK. Sounds good. ISIS definition has been already merged, but not sure it is already available in libsai from Intel for the Barefoot. Anywhere, it is on-going. We'll play with ospf first and once completely available we'll test IS-IS.

Hopefully that is somewhat helpful.
 
Thank you very much.

Regards,

Regards

Olivier

--
Olivier Dugeon
Reply all
Reply to author
Forward
0 new messages