What's new
  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

RT-AC86U - Configure Ethernet

ApexRon

Very Senior Member
The router GUI does not permit configuring the Ethernet. So I am trying to figure out how to configure a specific Ethernet port's speed and duplex through a telnet session. Anyone know?

Why? Auto-negotiate works but when I put device in sleep mode the router system log post this every five minutes:
Aug 26 12:09:35 kernel: eth4 (Ext switch port: 3) (Logical Port: 11) Link DOWN.
Aug 26 12:09:39 kernel: eth4 (Ext switch port: 3) (Logical Port: 11) Link UP 1000 mbps full duplex
Aug 26 12:10:05 kernel: eth4 (Ext switch port: 3) (Logical Port: 11) Link DOWN.
Aug 26 12:10:07 kernel: eth4 (Ext switch port: 3) (Logical Port: 11) Link UP 100 mbps full duplex​
 
The RT-AC86U uses a newer switch that is not supported by robocfg. Broadcom provide their own tool to configure it. Try a forum search, there's a thread somewhere on how to use that tool (I don't remember what the tool's name is nor where the thread was located).
 
Okay that explains why robocfg does not exist. I will research the Broadcom approach but if anyone has the particulars, advise.
 
Okay that explains why robocfg does not exist. I will research the Broadcom approach but if anyone has the particulars, advise.

See link in my last!


Sent from my iPhone using Tapatalk
 
I used "ethctl eth4 media-type 1000FD" and I achieved the results I wanted. I powered up the device and cleared the router system log. Now I just get the following in the system log:
Aug 26 14:48:10 kernel: eth4 (Ext switch port: 3) (Logical Port: 11) Link DOWN.
Aug 26 14:48:13 kernel: eth4 (Ext switch port: 3) (Logical Port: 11) Link UP 1000 mbps full duplex​
Which is what I would expect.

When I use "ethctl eth4 media-type" I get:
Auto-Negotiation enabled, with capabilities: 1GFD
Link is up at speed: 1000M, duplex: FD
Now I have to figure out how to turn off auto-negotiation.
 
Reading the source code it appears when setting 1000M FD it may also put AN back on silently as well
Code:
 case MEDIA_TYPE_1000M_FD:
                val = BMCR_SPEED1000| BMCR_FULLDPLX;
                if(!(ETHCTL_GET_FLAG_FROM_PHYID(phy_id) & ETHCTL_FLAG_ACCESS_SERDES)) {
                    val |= (BMCR_ANENABLE | BMCR_ANRESTART);
                    gig_cap = ADVERTISE_1000HALF;
                }
                break;

I’m not sure what the ACCESS_SERDES flag is though, or indeed how you might disable it if it is set (which it sounds like it might be if you are finding AN is still enabled after setting 1000M FD.


Sent from my iPhone using Tapatalk
 
Reading the source code it appears when setting 1000M FD it may also put AN back on silently as well
Code:
 case MEDIA_TYPE_1000M_FD:
                val = BMCR_SPEED1000| BMCR_FULLDPLX;
                if(!(ETHCTL_GET_FLAG_FROM_PHYID(phy_id) & ETHCTL_FLAG_ACCESS_SERDES)) {
                    val |= (BMCR_ANENABLE | BMCR_ANRESTART);
                    gig_cap = ADVERTISE_1000HALF;
                }
                break;

I’m not sure what the ACCESS_SERDES flag is though, or indeed how you might disable it if it is set (which it sounds like it might be if you are finding AN is still enabled after setting 1000M FD.


Sent from my iPhone using Tapatalk
I was looking at the C-coding for the command and it looks like if you specify a speed and duplex setting, auto-negotiation would be turned off:
static const struct command commands[] = {
{ 0, "media-type", et_cmd_media_type_op,
": Set/Get media type\n"
" ethctl <interface> media-type [option] [port <sub_port#> ]\n"
" [option]: auto - auto select\n"
" 1000FD - 1000Mb, Full Duplex\n"
" 1000HD - 1000Mb, Half Duplex\n"
" 100FD - 100Mb, Full Duplex\n"
" 100HD - 100Mb, Half Duplex\n"
" 10FD - 10Mb, Full Duplex\n"
" 10HD - 10Mb, Half Duplex\n"
" [port <sub_port#>]: required if <interface> has Crossbar or Trunk port underneath\n"
},
{ 0, "phy-reset", et_cmd_phy_reset_op,
": Soft reset the transceiver\n"
" ethctl <interface> phy-reset [port <sub_port#>]\n"
" [port <sub_port#>]: required if <interface> has Crossbar or Trunk port underneath\n"
},
{ 1, "reg", et_cmd_mii_op,
": Set/Get port mii register\n"
" ethctl <interface> reg <[0-31]> [0xhhhh] [port <sub_port#>]\n"
" [port <sub_port#>]: required if <interface> has Crossbar or Trunk port underneath\n"
},
{ 1, "phy-power", et_cmd_phy_power_op,
": Phy power up/down control\n"
" ethctl <interface> phy-power <up|down>"
},
{ 1, "vport", et_cmd_vport_op,
": Enable/disable/query Switch for VLAN port mapping\n"
" ethctl <interface> vport <enable|disable|query>"
},
{ 0, "stats", et_cmd_stats_op,
": Display software stats\n"
" ethctl <interface> stats"
},
{ 1, "ethernet@wirespeed", et_cmd_ethernet_at_wirespeed_op,
": Enable/Disable ethernet@wirespeed\n"
" ethctl <interface> ethernet@wirespeed <show|enable|disable> [port <sub_port#>]\n"
" [port <sub_port#>]: required if <interface> has Crossbar or Trunk port underneath\n"
},
};
 
What you’ve quoted is just the help text output, not the code itself (which is what I quoted...)

Your interpretation of the help text is correct, however as I said, per the quoted code, it is possible, that despite setting 1000FD it actually ignores you and sets AN on anyway!


Sent from my iPhone using Tapatalk
 
I am not a C expert by any means but it looks to me like auto-negotiate is always enabled. However, when you specify a speed and duplex the setting will always be what you configured it for.
 
What you’ve quoted is just the help text output, not the code itself (which is what I quoted...)

Your interpretation of the help text is correct, however as I said, per the quoted code, it is possible, that despite setting 1000FD it actually ignores you and sets AN on anyway!


Sent from my iPhone using Tapatalk
Our responses passed each other on the internet. Ha

You are correct, I posted the portion used for the help information. However, as I stated in my prior post, I believe auto-negotiation may always be enabled.
 
The silent setting of AN is only possible when setting 1000FD or 1000HD, if you set any other speed/duplex it will disable AN.
Try forcing it to 100FD to confirm.


Sent from my iPhone using Tapatalk
 
The silent setting of AN is only possible when setting 1000FD or 1000HD, if you set any other speed/duplex it will disable AN.
Try forcing it to 100FD to confirm.


Sent from my iPhone using Tapatalk
And you win the prize!!!:):):):):):):):):):)
AsusAdmin@RT-AC86U:/tmp/home/root# ethctl eth4 media-type 100FD
Auto-Negotiation disabled, with fixed speed: 100MFD
Link is down.
AsusAdmin@RT-AC86U:/tmp/home/root# ethctl eth4 media-type 1000FD
Auto-Negotiation enabled, with capabilities: 1GFD
Link is down.​
I am keeping at 1Gbps because that is the port used for video streaming.
 
Make me wonder what the difference between full auto and 1000FD+Auto is! There must be a good reason for it.
It sounds like it does what you need regardless RE log prints so all good!


Sent from my iPhone using Tapatalk
 
Maybe the spec for 1000M required auto to be on, but by the looks of it you are only advertising 1000FD when setting that option (rather than all the possible speeds/duplexes) so it always negates 1000FD due to lack of choice.


Sent from my iPhone using Tapatalk
 
Make me wonder what the difference between full auto and 1000FD+Auto is! There must be a good reason for it.
It sounds like it does what you need regardless RE log prints so all good!


Sent from my iPhone using Tapatalk
I know that part of the auto-negotiation process for some vendors is to check to see if the cable is capable of supporting 1G but I cannot say whether or not this product is doing that.
 

Latest threads

Support SNBForums w/ Amazon

If you'd like to support SNBForums, just use this link and buy anything on Amazon. Thanks!

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Back
Top