Getting 400gig interfaces working on the Arista 7280CR3-36S

TL;DR: you have to give up the adjacent 200gig port to use 400gig on the 7280CR3. If that’s okay, and you want to proceed with converting eth33/1 and/or eth35/1 to support 400gig, do this:

swh(config)#hardware port-group 1 select 1x-qsfp-dd(Et33)
!
                  WARNING!
   Changing the port-group mode will cause all
   interfaces on ports 33,34 to flap.

Do you wish to proceed with this command? [y/N]y
swh(config)#hardware port-group 2 select 1x-qsfp-dd(Et35)
!
                  WARNING!
   Changing the port-group mode will cause all
   interfaces on ports 35,36 to flap.

Do you wish to proceed with this command? [y/N]y

swh(config)#interface eth33/1,eth35/1
swh(config-if-Et33/1,35/1)#speed 400g
! The requested speed change will cause the following
interfaces to become inactive:

   Ethernet33/5
   Ethernet35/5

Do you wish to proceed with this command? [y/N]y
swh(config)#
swh(config)#show int status | i 400G
Et33/1     peer e33/1      connected    in Po10  full   400G   400GBASE-SR8
Et35/1     peer e35/1      connected    in Po10  full   400G   400GBASE-SR8Code language: PHP (php)

Long version:

First experience with 400gig on the 7280CR3-36S was not exactly ‘pleasant’. I first attempted to use a third party 400gig DAC cable. Came up fine, but at 200gig speed. Vendor said it ‘should work’, told me to try hard coding the speed, which I’d already done and it failed, so they weren’t helpful. Arista support went down that same path, first prefacing the response with well these are third party devices so they may not work properly. They had me collect some show hardware int / show hardware int default data. Had me hard code the speed. Ultimately I figured out the real issue via https://www.arista.com/en/um-eos/eos-ethernet-ports but it was not obvious, because even some critical key words I’d have needed to search were only being output on the console, not in the CLI over SSH.

This is what things looked like initially:

swh(config)#show int status | i 400G
Et33/1     peer e33/1      connected    in Po10  full   200G   400GBASE-SR8
Et35/1     peer e35/1      connected    in Po10  full   200G   400GBASE-SR8Code language: PHP (php)

Well that’s weird, my 400gig transceivers are in 200gig mode. Let’s check show int e33/1 hardware:

swh#show int e33/1 hardware
*  = Requires speed group setting change
Ethernet33/1
  Model: DCS-7280CR3-36S
  Type: 400GBASE-SR8
  Speed/duplex: 50G-1/full,100G-4/full,100G-2/full,200G-4/full(default),400G-8/full
  Flowcontrol: rx-(off,on),tx-(off)
  Error correction: reed-solomon(50G-1(default),100G-4(default),100G-2(default),200G-4(default),400G-8(default)), fire-code(none), disabled(100G-4)
Code language: PHP (php)

Notice how it says “* = Requires speed group setting change”? Would sure have been nice if the * appeared next to 400G-8/full where it should be. That line only appears on the QSFP56 and QSFP-DD ports, which are eth 25 to 36, but it doesn’t appear next to any speeds, so it’s clearly incorrect given no speed group setting change is needed for most choices.

So, I figure this is just an issue of needing to hard code the speed, like both vendors’ support groups also suggested. Well, let’s try it:

swh(config-if-Et33/1,35/1)#speed 400g
swh(config-if-Et33/1,35/1)#show int status | i 400G
Et33/1     peer e33/1      errdisabled  in Po10  full   400G   400GBASE-SR8
Et35/1     peer e35/1      errdisabled  in Po10  full   400G   400GBASE-SR8Code language: PHP (php)

Sure didn’t seem to like that:

# show int status errdisabled
   Port         Name                      Status         Reason
------------ ------------------------- ----------------- -------------------
   Et33/1       peer e33/1             errdisabled    speed-misconfigured
   Et35/1       peer e35/1             errdisabled    speed-misconfigured
Code language: PHP (php)

Hmm, why is speed misconfigured if they support 400 gig? The logs got me a bit closer:


Jun  7 15:14:22 swh SandFapNi: 1197: %ETH-4-PORT_MODE_INCOMPATIBLE_IN_SPEED_GROUP: Speed on interface Ethernet33/1 is incompatible with the setting of speed group 3.
Jun  7 15:14:22 swh SandFapNi: 1198: %ETH-4-PORT_MODE_INCOMPATIBLE_IN_SPEED_GROUP: Speed on interface Ethernet35/1 is incompatible with the setting of speed group 4.
Jun  7 15:14:22 swh Ebra: 1199: %ETH-4-ERRDISABLE: speed-misconfigured error detected on Ethernet33/1.
Jun  7 15:14:22 swh Ebra: 1200: %ETH-4-ERRDISABLE: speed-misconfigured error detected on Ethernet35/1.Code language: JavaScript (javascript)

Unfortunately Arista docs don’t seem to reference “speed group” anywhere besides the above “show interface hardware” output where that same message appears, similarly with no asterisk in their examples. I only lucked into it by searching for 400g on that page and finding the “port group” table related to the 7280CR3-36S:

The DCS-7280CR3-36S has 28 dedicated 100Gb/s QSFP ports, plus two port groups. The port groups support either two additional QSFP-DD (400Gb/s) ports or four QSFP56 (200Gb/s) ports as shown in Table 3.

Hmm okay, speed group, port group, I’m getting closer. Finally I find:

The hardware port-group command is available on DCS-7280CR3-36S, DCS-7050Q-16, and DCS-7050QX-32S switches, and has different parameters on each platform.

Finally. So we’ve gone from an error about speed group, to port group, to hardware port-group. Come on Arista. Finally, success:

swh(config)#hardware port-group 1 select 1x-qsfp-dd(Et33)
!
                  WARNING!
   Changing the port-group mode will cause all
   interfaces on ports 33,34 to flap.

Do you wish to proceed with this command? [y/N]y
swh(config)#hardware port-group 2 select 1x-qsfp-dd(Et35)
!
                  WARNING!
   Changing the port-group mode will cause all
   interfaces on ports 35,36 to flap.

Do you wish to proceed with this command? [y/N]y

swh(config)#interface eth33/1,eth35/1
swh(config-if-Et33/1,35/1)#speed 400g
! The requested speed change will cause the following
interfaces to become inactive:

   Ethernet33/5
   Ethernet35/5

Do you wish to proceed with this command? [y/N]y
swh(config)#
swh(config)#show int status | i 400G
Et33/1     peer e33/1      connected    in Po10  full   400G   400GBASE-SR8
Et35/1     peer e35/1      connected    in Po10  full   400G   400GBASE-SR8Code language: PHP (php)

That should not have been that difficult, and support should have known what the issue was as soon as I said 400gig coming up as 200gig in a 36S…

Leave a Reply

Your email address will not be published. Required fields are marked *