Page MenuHomePhabricator

Modify homer/automation templates to support 100BaseTX interfaces with autoneg disabled.
Closed, ResolvedPublic

Description

Carrier's have commonly delivered 10BaseT and 100BaseTX Ethernet services with auto-negotiation disabled, instead manually configuring the speed and duplex on the handoff port.

This can be problematic if such a link is plugged into an RJ45 port with autoneg switched on. At the time it was standardized, auto-negotiation for these PHYs mandated that should the process fail, devices would default to half-duplex operation. Hubs were still common in that era and this was seen as a "safe" default. Unfortunately in today's world that means if a link has one side hard-set to 100Mb/full-duplex, and the other set to negotiate, the side set to autoneg will end up in half-duplex mode. This duplex mis-match means if the half-duplex side receives data while it is transmitting it will count that as a "collision", drop the frame it's recieving, stop transmitting, and start a CSMA/CD back-off timer. This kills performance.

Anyway enough showing my age. We have this issue on mr1-ulsfo, as can be seen from the device output:

cmooney@mr1-ulsfo> show interfaces ge-0/0/0 
Physical interface: ge-0/0/0, Enabled, Physical link is Up
  Interface index: 134, SNMP ifIndex: 508
  Link-level type: Ethernet, MTU: 1514, Link-mode: Half-duplex, Speed: 100mbps, BPDU Error: None, MAC-REWRITE Error: None, Loopback: Disabled, Source filtering: Disabled, Flow control: Enabled,

To properly terminate this link we need to configure our interface for 100Mb/full-duplex manually, disabling auto-negotiation for the port.

Agreed way forward is to set the Netbox interface type to "100BaseTX", indicating it needs to be set to that speed manually. Creating this task to track the homer and template changes to add this to our automated configuration.

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

Change 710523 had a related patch set uploaded (by Cathal Mooney; author: Cathal Mooney):

[operations/software/homer/deploy@master] Exposed Netbox interface 'type' value so it can be used in templates.

https://gerrit.wikimedia.org/r/710523

Change 710525 had a related patch set uploaded (by Cathal Mooney; author: Cathal Mooney):

[operations/homer/public@master] Change to interface templates for mr routers.

https://gerrit.wikimedia.org/r/710525

Change 710523 abandoned by Cathal Mooney:

[operations/software/homer/deploy@master] Exposed Netbox interface 'type' value so it can be used in templates.

Reason:

https://gerrit.wikimedia.org/r/710523

Change 710523 restored by Cathal Mooney:

[operations/software/homer/deploy@master] Exposed Netbox interface 'type' value so it can be used in templates.

https://gerrit.wikimedia.org/r/710523

Change 710523 merged by Cathal Mooney:

[operations/software/homer/deploy@master] Exposed Netbox interface 'type' value so it can be used in templates.

https://gerrit.wikimedia.org/r/710523

Change 715205 had a related patch set uploaded (by Cathal Mooney; author: Cathal Mooney):

[operations/software/homer/deploy@master] Updated build for buster and bullseye to integrate change exposing interface type from Netbox to Homer.

https://gerrit.wikimedia.org/r/715205

Change 715205 merged by Cathal Mooney:

[operations/software/homer/deploy@master] Updated build for buster and bullseye to integrate change exposing interface type from Netbox to Homer.

https://gerrit.wikimedia.org/r/715205

Mentioned in SAL (#wikimedia-operations) [2021-08-27T09:21:56Z] <cmooney@deploy1002> Started deploy [homer/deploy@8183056]: Homer update exposing interface type from Netbox - T288343

Mentioned in SAL (#wikimedia-operations) [2021-08-27T09:23:25Z] <cmooney@deploy1002> Finished deploy [homer/deploy@8183056]: Homer update exposing interface type from Netbox - T288343 (duration: 01m 28s)

Change 710525 merged by jenkins-bot:

[operations/homer/public@master] Change to interface templates for mr routers.

https://gerrit.wikimedia.org/r/710525

Mentioned in SAL (#wikimedia-operations) [2021-08-27T09:33:45Z] <topranks> Running homer against mr1-ulsfo to force OOB interface to 100Mb/full-duplex - T288343

Change 715211 had a related patch set uploaded (by Cathal Mooney; author: Cathal Mooney):

[operations/homer/public@master] Fixed error in Jinja2 template for hardcoded speed/duplex on mr routers.

https://gerrit.wikimedia.org/r/715211

Change 715211 merged by jenkins-bot:

[operations/homer/public@master] Fixed error in Jinja2 template for hardcoded speed/duplex on mr routers.

https://gerrit.wikimedia.org/r/715211

Change 715214 had a related patch set uploaded (by Cathal Mooney; author: Cathal Mooney):

[operations/homer/public@master] Missing 'm' in speed command causing JunOS error.

https://gerrit.wikimedia.org/r/715214

Change 715214 merged by jenkins-bot:

[operations/homer/public@master] Missing 'm' in speed command causing JunOS error.

https://gerrit.wikimedia.org/r/715214

Change 715223 had a related patch set uploaded (by Cathal Mooney; author: Cathal Mooney):

[operations/homer/public@master] Adding stanza for 'gigether-options' to explicitly deactivate autonegotiation on MR/SRX interfaces manually set to 100Mb/full.

https://gerrit.wikimedia.org/r/715223

Change 715223 merged by jenkins-bot:

[operations/homer/public@master] Adding stanza for 'gigether-options' to explicitly deactivate autonegotiation on MR/SRX interfaces manually set to 100Mb/full.

https://gerrit.wikimedia.org/r/715223

Sorted it eventually :)

cmooney@mr1-ulsfo> show interfaces ge-0/0/0                           
Physical interface: ge-0/0/0, Enabled, Physical link is Up
  Interface index: 134, SNMP ifIndex: 508
  Description: OOB: Digital Reality (DLRDIA00525973) {#103.100.01.78}
  Link-level type: Ethernet, MTU: 1514, Link-mode: Full-duplex, Speed: 100mbps, BPDU Error: None, MAC-REWRITE Error: None, Loopback: Disabled, Source filtering: Disabled,
  Flow control: Enabled, Auto-negotiation: Disabled, Remote fault: Online
cmooney@mr1-ulsfo> ping 198.24.47.101 size 1472 rapid count 1000        
PING 198.24.47.101 (198.24.47.101): 1472 data bytes
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
--- 198.24.47.101 ping statistics ---
1000 packets transmitted, 1000 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.808/5.033/26.147/2.168 ms