How to Disable Flow-Control on Cisco ISR 4431 Router GigabitEthernet

cisco-ioscisco-isrieee-802.3x

I've got a new Cisco ISR 4431 Router running IOS XE 03.13.02.S and IOS 15.4(3)S2.
WAN connection is a Metro Ethernet circuit delivered over copper and ISP has requested that we force the port to 1Gbps Full-Duplex. Our internal network is all using default auto-negotiate gig port settings.

WAN Port config snippet:

interface GigabitEthernet0/0/0
 description WAN Metro Ethernet Circuit
 ! ...
 speed 1000
 duplex full
 no negotiation auto

INSIDE Port config snippet:

interface GigabitEthernet0/0/1
 description INSIDE Router Port
 ! ...
 negotiation auto

Strange thing is that with the force 1G Full WAN port, the interface appears to have flow-control (802.3x pause frames) enabled and I can't figure out a command to disable flow-control on the port. On my INSIDE (negotiation auto) port, flow-control is disabled which is what I've seen as the default ethernet port setting in other Cisco routers. See the following port status samples for details:

WAN Port status:

RTR# show int gig0/0/0
GigabitEthernet0/0/0 is up, line protocol is up
  Hardware is ISR4431-X-4x1GE, address is [...]
  [...]
  MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
     reliability 255/255, txload 1/255, rxload 3/255
  Encapsulation ARPA, loopback not set
  Keepalive not supported
  Full Duplex, 1000Mbps, link type is force-up, media type is RJ45
  output flow-control is on, input flow-control is on
  ARP type: ARPA, ARP Timeout 00:05:00
  [...]

LAN Port status:

RTR#show int gig0/0/1
GigabitEthernet0/0/1 is up, line protocol is up
  Hardware is ISR4431-X-4x1GE, address is [...]
  [...]
  MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
     reliability 255/255, txload 2/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive not supported
  Full Duplex, 1000Mbps, link type is auto, media type is RJ45
  output flow-control is off, input flow-control is off
  ARP type: ARPA, ARP Timeout 00:05:00

Note that "flow-control is off" for the auto-negotiate LAN port, but "flow-control is on" for the force-gig-full WAN port. Neither port has a command applied directly related to 802.3x ethernet flow control. In my attempts to google for a solution, I saw suggestions for a "flowcontrol" and "negotiation forced" IOS interface commands. Neither of these commands was available on the CLI of my 4431 router. Maybe they were for different Cisco hardware, interface type, or software release?

If you have any suggestions for how to disable this please share here. I can always leave it on, but if the ISP has it disabled on their end then I should match by disabling 802.3x pause frames on mine.

Best Answer

I will start by saying that you should not be disabling auto-negotiation with Gigabit connections. This is what the standard has to say (from 802.3-2012 Section Three, which you can reference here):

37.1.4.4 User Configuration with Auto-Negotiation

Rather than disabling Auto-Negotiation, the following behavior is suggested in order to improve interoperability with other Auto-Negotiation devices. When a device is configured for one specific mode of operation (e.g. 1000BASE-X Full Duplex), it is recommended to continue using Auto-Negotiation but only advertise the specifically selected ability or abilities. This can be done by the Management agent only setting the bits in the advertisement registers that correspond to the selected abilities.

This means you should never use speed 1000 on Gigabit links. You could instead speed auto 1000, but your expressed need has a better solution.

The real problem is the following command on interface Gigabit0/0/0:

  no negotiation auto

Remove the speed 1000, the duplex full, and the no negotiation auto commands from the interface and instead use negotiation forced so your interface looks like so:

 interface GigabitEthernet0/0/0
  description WAN Metro Ethernet Circuit
  ! ...
  negotiation forced

From Cisco documentation, the forced keyword has the following effect (and I believe also adheres to the standard's recommendation):

Disables flow control and configures the Gigabit Ethernet interface in 1000/full-duplex mode.

This should meet your requirement of 1000/full with no flow control.


In re-reading your question, I realized you noted you did not seem to have the force command available.

In your case, I will still recommend removing the no negotiation auto command and have your interface look like so:

 interface GigabitEthernet0/0/0
  description WAN Metro Ethernet Circuit
  ! ...
  speed auto 1000
  duplex full