cancel
Showing results for 
Search instead for 
Did you mean: 

ICX 7250 and family: Support "Broadcom 2.5G" on SFP+ ports

adam_jaremko
New Contributor II
I like to request the enablement of "Broadcom 2.5G" and NOT to be confused with MultiGig via Aquantia or the likes.

Obviously, this is a niche request to support the very few SFP modules that sync at such speeds, but they do exist in the market, such as: https://www.sourcephotonics.com/product/sps-34-24t-hp-tdfo/ or any powered by an Intel® FALCTM ONT GPONSFP PEF98035 Chipset PEF98035ETV13 S LLC5.

Such modules do work when the interface is configured with: speed-duplex 1000-full as auto configuration fails but are not running at their default data throughput of 2.5Gbps.

As you're aware the ICX 7250 8 SFP+ ports are divided by 2 WarpCore's, 4 SerDes pairs per core, and us mere end users can observe as much by running the simple command: phy 1/2/1.

And from my past encounters with the WarpCore, it's feasible to run native SerDes 8b/10b 3.125Gbps to achieve a data throughput of 2.5Gbps and most definitely so when the right bits are set, eg.

https://community.broadcom.com/communities/community-home/digestviewer/viewthread?MID=698164

https://www.dslreports.com/forum/r32230041-Internet-Bypassing-the-HH3K-up-to-2-5Gbps-using-a-BCM5781...

https://www.dslreports.com/forum/r32393899-Internet-Bypassing-the-HH3K-up-to-2-5Gbps-using-a-BCM5771...

Hopefully this request doesn't fall on deaf ears and speed-duplex 2500-full works in a future firmware release.

Thanks.
9 REPLIES 9

simon_pollard
Contributor II
Hi

Thanks for the suggestion. Could you advise what the use case would be for a 2.5G SFP port? The primary use case for 2.5G is WiFi-6 Access Points which require PoE which won't be possible with an optic.

The optic that you referenced is asymmetric 1.5G TX/2.5G RX and outside of PON applications so could not be used in ethernet applications such as on the 7250.

The primary use case would be FTTP/FTTH/FTTB installs for small business, home business, home lab, etc. to reduce hardware and the associated maintenance and utility costs.

The modules are not much different from an Access Point. They're more than just a conduit like typical optics since they have an embedded SoC with OS and ethernet layer for triple play VLANS, but at the same time are limited, which is where an L3 switch can expand on. In the case of the linked module, it's running OpenWRT linux and provides all the conveniences. The capacity is tied end to end.

This is how the LAN/SFP end of the module can be configured.
Long Form: lan_port_cfg_get
Short Form: lanpcg
Input Parameter
- uint32_t pport
Output Parameter
- enum onu_errorcode errorcode
- uint32_t pport
- uint32_t enable
- int32_t mdio_dev_addr
- enum lan_mode_gmux gmux_mode
   LAN_MODE_GMUX_GPHY0_GMII = 0
   LAN_MODE_GMUX_GPHY0_MII2 = 1
   LAN_MODE_GMUX_GPHY1_GMII = 2
   LAN_MODE_GMUX_GPHY1_MII2 = 3
   LAN_MODE_GMUX_SGMII = 4
   LAN_MODE_GMUX_XMII0 = 5
   LAN_MODE_GMUX_XMII1 = 6
- enum lan_mode_interface mode
   LAN_MODE_OFF = 0
   LAN_MODE_GPHY = 1
   LAN_MODE_EPHY = 2
   LAN_MODE_SGMII = 3
   LAN_MODE_SGMII_FAST = 4
   LAN_MODE_RGMII_MAC = 5
   LAN_MODE_RMII_MAC = 6
   LAN_MODE_RMII_PHY = 7
   LAN_MODE_GMII_MAC = 8
   LAN_MODE_GMII_PHY = 9
   LAN_MODE_MII_MAC = 10
   LAN_MODE_MII_PHY = 11
   LAN_MODE_TMII_MAC = 12
   LAN_MODE_TMII_PHY = 13
   LAN_MODE_TBI_SERDES = 14
   LAN_MODE_TBI_AUTODETECT = 15
- enum lan_mode_duplex duplex_mode
   LAN_PHY_MODE_DUPLEX_AUTO = 0
   LAN_PHY_MODE_DUPLEX_FULL = 1
   LAN_PHY_MODE_DUPLEX_HALF = 2
   LAN_PHY_MODE_DUPLEX_UNKNOWN = 3
- enum lan_mode_flow_control flow_control_mode
   LAN_FLOW_CONTROL_MODE_AUTO = 0
   LAN_FLOW_CONTROL_MODE_RX = 1
   LAN_FLOW_CONTROL_MODE_TX = 2
   LAN_FLOW_CONTROL_MODE_RXTX = 3
   LAN_FLOW_CONTROL_MODE_NONE = 4
- enum lan_mode_speed speed_mode
   LAN_MODE_SPEED_AUTO = 0
   LAN_MODE_SPEED_10 = 1
   LAN_MODE_SPEED_100 = 2
   LAN_MODE_SPEED_200 = 3
   LAN_MODE_SPEED_1000 = 4
   LAN_MODE_SPEED_2500 = 5
   LAN_MODE_SPEED_UNKNOWN = 6
- uint8_t tx_clk_dly
- uint8_t rx_clk_dly
- uint16_t max_frame_size
- uint32_t lpi_enable
- enum sgmii_autoneg_mode autoneg_mode
   SGMII_NO_ANEG = 0
   SGMII_MAC_ANEG = 1
   SGMII_PHY_ANEG = 2
   SGMII_SERDES_ANEG = 3
- uint32_t invtx
- uint32_t invrx
and the result of SSH into the module and running: onu lan_port_cfg_get 0
errorcode=0 pport=0 enable=1 mdio_dev_addr=-1 gmux_mode=4 mode=15 duplex_mode=1 flow_control_mode=4 speed_mode=5 tx_clk_dly=0 rx_clk_dly=0 max_frame_size=9216 lpi_enable=1 autoneg_mode=3 invtx=0 invrx=0
As you can see the LAN/SFP end is set to Ten-bit Interface AUTO, speed is set to 2500, duplex is set to full, etc.

Ideally, if you were to SSH and run: onu lan_port_status_get 0, you'd like to see the following result

errorcode=0 pport=0 mode=15 enable=1 link_status=5 phy_duplex=1

rather than

errorcode=0 pport=0 mode=15 enable=1 link_status=4 phy_duplex=1

The 1st is achieved using a BCM57810S Adapter with a 2.5G driver patch (It uses a WarpCore as well) and the 2nd is from an ICX 7250. Where link_status is
- enum lan_phy_status link_status
   LAN_PHY_STATUS_OFF = 0
   LAN_PHY_STATUS_DOWN = 1
   LAN_PHY_STATUS_10_UP = 2
   LAN_PHY_STATUS_100_UP = 3
   LAN_PHY_STATUS_1000_UP = 4
   LAN_PHY_STATUS_2500_UP = 5
   LAN_PHY_STATUS_NONE = 6
   LAN_PHY_STATUS_UNKNOWN = 255

FTTx/PON is not a target market for the 7250, or Ruckus more broadly, so this is not a solution that we would pursue.

Thanks for the suggestion, let us know if you have any other ideas. 

That's understandable.

Thanks for the consideration and time.