Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Zyxel GPON SFP not usable in Juniper SRX300 (HSGMII problem?) #33

Open
PeterFnord opened this issue Sep 30, 2024 · 0 comments
Open

Zyxel GPON SFP not usable in Juniper SRX300 (HSGMII problem?) #33

PeterFnord opened this issue Sep 30, 2024 · 0 comments

Comments

@PeterFnord
Copy link

Hello everyone,

I am currently trying to get the Zyxel GPON module to work with a Juniper SRX300. The module is recognized, but the console continuously throws the following errors, which lead to a crash of the PFE after a few minutes, and as a result all ports are switched off;

twsi0: Device timeout on unit 0 (flowd_octeon_hm, Read, 0x51)
twsi0: Device timeout on unit 0 (flowd_octeon_hm, Read, 0x51)
twsi0: Device timeout on unit 0 (chassisd, Read, 0x4d)
twsi0: Device timeout on unit 0 (chassisd, Read, 0x4d)
twsi0: Device timeout on unit 0 (flowd_octeon_hm, Read, 0x51)
twsi0: Device timeout on unit 0 (flowd_octeon_hm, Read, 0x51)
twsi0: Device timeout on unit 0 (chassisd, Read, 0x4d)
twsi0: Device timeout on unit 0 (chassisd, Read, 0x4d)

Parallel to the Zyxel module, I also have a SourcePhotonics SPS-34-24T-HP-TDFO, which appears to be based on the same chipset, but works without any problems in the SRX300 without the messages described above. I suspect that the problem lies in the communication mode set for the modules. The Zyxel seems to try to negotiate the HSGMII mode, whereas the SourcePhotonics speaks 1000BASE-X. I have tried to find a way to move the Zyxel module to the 1000BASE-X, but so far without success. I have already gone through all the speed modes of the hal command. I get the following output from the respective modules;

Zyxel-Module;

admin@SFP:~# onu lan_port_cfg_get 0
errorcode=0 index=0 enable=1 mdio_dev_addr=-1 gmux_mode=4 mode=15 duplex_mode=0 flow_control_mode=3 speed_mode=0 tx_clk_dly=0 rx_clk_dly=0 max_frame_size=1518 lpi_enable=1 autoneg_mode=3 invtx=0 invrx=0 eth_clock_mode=0

admin@SFP:~# onu lan_port_cfg_get
Long Form: lan_port_cfg_get
Short Form: lanpcg
Input Parameter

  • uint32_t index

Output Parameter

  • enum onu_errorcode errorcode
  • uint32_t index
  • 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
  • enum sgmii_ethernet_clk_mode eth_clock_mode
    EXTERNAL = 0
    RECOVERED = 1

admin@SFP:~# onu lanpsg
Long Form: lan_port_status_get
Short Form: lanpsg

Input Parameter

  • uint32_t index

Output Parameter

  • enum onu_errorcode errorcode
  • uint32_t index
  • 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
  • uint32_t enable
  • 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_200_UP = 4
    LAN_PHY_STATUS_1000_UP = 5
    LAN_PHY_STATUS_2500_UP = 6
    LAN_PHY_STATUS_NONE = 7
    LAN_PHY_STATUS_UNKNOWN = 255
  • enum lan_mode_duplex phy_duplex
    LAN_PHY_MODE_DUPLEX_AUTO = 0
    LAN_PHY_MODE_DUPLEX_FULL = 1
    LAN_PHY_MODE_DUPLEX_HALF = 2
    LAN_PHY_MODE_DUPLEX_UNKNOWN = 3

admin@SFP:~# onu lanpsg 0
errorcode=0 index=0 mode=15 enable=1 link_status=5 phy_duplex=1

SourcePhotonics-Module;

root@SFP:/home/ONTUSER# 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=2000 lpi_enable=1 autoneg_mode=3 invtx=0 invrx=0

root@SFP:/home/ONTUSER# onu lan_port_cfg_get
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

root@SFP:/home/ONTUSER# onu lanpsg
Long Form: lan_port_status_get
Short Form: lanpsg

Input Parameter

  • uint32_t pport

Output Parameter

  • enum onu_errorcode errorcode
  • uint32_t pport
  • 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
  • uint32_t enable
  • 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
  • enum lan_mode_duplex phy_duplex
    LAN_PHY_MODE_DUPLEX_AUTO = 0
    LAN_PHY_MODE_DUPLEX_FULL = 1
    LAN_PHY_MODE_DUPLEX_HALF = 2
    LAN_PHY_MODE_DUPLEX_UNKNOWN = 3

root@SFP:/home/ONTUSER# onu lanpsg 0
errorcode=0 pport=0 mode=15 enable=1 link_status=4 phy_duplex=1

Perhaps someone has an idea or more experience? Maybe I'm looking in the wrong place and the reason is completely different?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant