Hello à toutes et à tous,
Je confirme, via le fw FS modded v5, j'obtiens du O5 et mes IPv4 + IPv6 avec:
fw_setenv onu_ploam XXXXXXXX
DHCP vendor-class-identifier (60) @ neufbox_NB6VAC-X
root@SFP:~# onu ploamsg
errorcode=0 curr_state=5 previous_state=4 elapsed_msec=4294743076
root@SFP:~# gtop -g "GPE VLAN rule"
GPE VLAN rule
Name: ONU_GPE_VLAN_RULE_TABLE
ID: 42
;;;enable;;;ethertype filter;;;;;outer;;;;;;;inner;;;;;;
no;end;def;two;one;zero;5;4;3;2;1;de enable;de filter;input tpid enable;vid enable;vid filter;priority enable;priority f
ilter;de enable;de filter;input tpid enable;vid enable;vid filter;priority enable;priority filter
0; ;1; ; ;1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
1; ;1; ;1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
2;1;1;1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
64;1; ; ;1; ; ; ; ; ; ; ; ; ;1; 101; ; ; ; ; ; ; ; ;
128; ;1; ; ;1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
129; ;1; ;1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
130;1;1;1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
192; ;1; ; ;1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
193; ;1; ;1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
194;1;1;1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
256; ;1; ; ;1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
257; ;1; ;1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
258;1;1;1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
05:12:12.567128 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 328)
0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from XX:XX:XX:XX:XX:XX (oui Unknown), length 300, xid 0xf2669553, secs 21, Flags [none]
Client-Ethernet-Address XX:XX:XX:XX:XX:XX (oui Unknown)
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Discover
MSZ Option 57, length 2: 576
Parameter-Request Option 55, length 8:
Subnet-Mask, Default-Gateway, Domain-Name-Server, Hostname
Domain-Name, BR, NTP, Classless-Static-Route
Vendor-Class Option 60, length 16: "neufbox_NB6VAC-X"
Hostname Option 12, length 3: "X"
05:12:12.666621 IP (tos 0xc0, ttl 64, id 42424, offset 0, flags [none], proto UDP (17), length 306)
X.X.X.X > X.X.X.X.68: BOOTP/DHCP, Reply, length 278, xid 0xf2669553, Flags [none]
Your-IP X.X.X.X
Server-IP X.X.X.X.rev.sfr.net
Gateway-IP XXXXXX-XXX-X.nro.gaoland.net
Client-Ethernet-Address XX:XX:XX:XX:XX:XX (oui Unknown)
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Offer
Server-ID Option 54, length 4: X.X.X.X.rev.sfr.net
Lease-Time Option 51, length 4: 14400
Subnet-Mask Option 1, length 4: 255.255.255.254
Default-Gateway Option 3, length 4: X.X.X.X
Domain-Name-Server Option 6, length 8: vip-dns-gp-secondary.dns.sfr.net,vip-dns-gp-primary.dns.sfr.net
05:12:12.687127 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 328)
0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from XX:XX:XX:XX:XX:XX (oui Unknown), length 300, xid 0xf2669553, secs 21, Flags [none]
Client-Ethernet-Address XX:XX:XX:XX:XX:XX (oui Unknown)
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Request
Requested-IP Option 50, length 4: X.X.X.X
Server-ID Option 54, length 4: X.X.X.X.rev.sfr.net
MSZ Option 57, length 2: 576
Parameter-Request Option 55, length 8:
Subnet-Mask, Default-Gateway, Domain-Name-Server, Hostname
Domain-Name, BR, NTP, Classless-Static-Route
Vendor-Class Option 60, length 16: "neufbox_NB6VAC-X"
Hostname Option 12, length 3: "X"
05:12:12.825207 IP (tos 0xc0, ttl 64, id 42430, offset 0, flags [none], proto UDP (17), length 306)
X.X.X.X > X.X.X.X.68: BOOTP/DHCP, Reply, length 278, xid 0xf2669553, Flags [none]
Your-IP X.X.X.X
Server-IP X.X.X.X.rev.sfr.net
Gateway-IP XXXXXX-XXX-X.nro.gaoland.net
Client-Ethernet-Address XX:XX:XX:XX:XX:XX (oui Unknown)
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: ACK
Server-ID Option 54, length 4: X.X.X.X.rev.sfr.net
Lease-Time Option 51, length 4: 300
Subnet-Mask Option 1, length 4: 255.255.255.254
Default-Gateway Option 3, length 4: X.X.X.X
J'en étais arrivé à considerer que cela ne suffisait pas car le set du SN + PLOAM via l'édition du sfp_a2_info sur le fw Huawei rooted ne fonctionnait pas.
Concernant le passage du SFP à 2.5GE sous FS Mod, à la base, l'eeprom est emulated et ses données sont contenu dans sfp_a0_low_128.
Le fw Huawei rooted contient bien un sfp_a0_low_128 permettant le 2.5GE, que je vous conseille donc de sauvegarder:
root@X:~# ethtool eth1
Settings for eth1:
Supported ports: [ FIBRE ]
Supported link modes: 2500baseX/Full
1000baseX/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 2500baseX/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 2500Mb/s
Duplex: Full
Port: FIBRE
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: yes
root@X:~# ethtool -m eth1
Identifier : 0x03 (SFP)
Extended identifier : 0x04 (GBIC/SFP defined by 2-wire interface ID)
Connector : 0x01 (SC)
Transceiver codes : 0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00
Transceiver type : Ethernet: 1000BASE-LX
Encoding : 0x03 (NRZ)
BR, Nominal : 1200MBd
Rate identifier : 0x00 (unspecified)
Length (SMF,km) : 20km
Length (SMF) : 20000m
Length (50um) : 0m
Length (62.5um) : 0m
Length (Copper) : 0m
Length (OM3) : 0m
Laser wavelength : 1310nm
Vendor name : HUAWEI
Vendor OUI : 00:00:00
Vendor PN : MA5671A
Vendor rev : 0000
Option values : 0x00 0x1a
Option : RX_LOS implemented
Option : TX_FAULT implemented
Option : TX_DISABLE implemented
BR margin, max : 0%
BR margin, min : 0%
Vendor SN : XXXXXXXXXXXXXXXX
Date code : 190507
[...]
root@SFP:~# onu lanpsg 0
errorcode=0 pport=0 mode=15 enable=1 link_status=5 phy_duplex=1
root@SFP:~# onu lanpcg 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
Notez en revanche le Transceiver type défini en 1000BASE-LX et le BR nominal à 1200MBd.
Le problème c'est qu'une fois n'importe quel autre firmware flashé, vous passerez en 1GE:
root@X:~# ethtool eth1
Settings for eth1:
Supported ports: [ FIBRE ]
Supported link modes: 1000baseX/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 1000baseX/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 1000baseX/Full
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Port: FIBRE
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: yes
root@X:~# ethtool -m eth1
Identifier : 0x03 (SFP)
Extended identifier : 0x04 (GBIC/SFP defined by 2-wire interface ID)
Connector : 0x01 (SC)
Transceiver codes : 0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00
Transceiver type : Ethernet: 1000BASE-LX
Encoding : 0x03 (NRZ)
BR, Nominal : 1200MBd
Rate identifier : 0x00 (unspecified)
Length (SMF,km) : 20km
Length (SMF) : 20000m
Length (50um) : 0m
Length (62.5um) : 0m
Length (Copper) : 0m
Length (OM3) : 0m
Laser wavelength : 1310nm
Vendor name : Lantiq
Vendor OUI : 00:00:00
Vendor PN : Falcon SFP
Vendor rev : 0
Option values : 0x00 0x1a
Option : RX_LOS implemented
Option : TX_FAULT implemented
Option : TX_DISABLE implemented
BR margin, max : 0%
BR margin, min : 0%
Vendor SN : XXXXXXXXXXXXXXXX
Date code : 190507
[...]
root@SFP:~# onu lanpsg 0
errorcode=0 pport=0 mode=15 enable=1 link_status=4 phy_duplex=1
root@SFP:~# onu lanpcg 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
Notez le changement du vendor en Lantiq et l'absence du 2.5GE, cela est dû à sfp_eeprom.sh au sein d'init.d qui overwrite l'eeprom au démarrage donc, et nous pouvons observer que malgré le speed_mode=5 défini dans lanpcg, nous nous retrouvons en link_status=4 en faisant un lookup via lanpsg, soit 1GE.
Même un flash du MTD2 pour ma part ne faisait plus le rollback en 2.5GE étant donné que sfp_a0_low_128 avait été réécrit.
Flash du MTD2 via Kermit
FALCON => loadb 0x80800000
## Ready for binary (kermit) download to 0x80800000 at 115200 bps...
## Total Size = 0x00344e66 = 3427942 Bytes
## Start Addr = 0x80800000
FALCON => sf probe 0
SF: Detected W25Q128 with page size 4 KiB, total 16 MiB
FALCON => sf erase C0000 740000
SF: 7602176 bytes @ 0xc0000 Erased: OK
FALCON => sf write 80800000 C0000 740000
FALCON => reset
@Romain, pour info.
La solution la plus simple consiste à remplacer sfp_eeprom.sh par celui contenu originalement dans le FW Huawei
- in attachment - puis de set à nouveau sfp_a0_low_128 avec sa valeur d'origine que vous avez sans doutes sauvegardé quelque part.
Toujours réaliser un backup de vos fichiers originaux, le disaster recovery avant tout. (:
Vous repasserez donc en 2.5GE/1GE autoneg et le link_status sera à nouveau à 5:
Supported link modes: 2500baseX/Full
1000baseX/Full
root@SFP:~# onu lanpsg 0
errorcode=0 pport=0 mode=15 enable=1 link_status=5 phy_duplex=1
That's it, pour le commun des mortels, cela fonctionne.
Pour ma part, j'ai voulu forcer le 2.5GE uniquement sur mon SFP et avoir à minima un Baud Rate qui correspond correctement à la spécification SFF-8024 pour le 2.5GBASE-T, soit 3125 MBd (arrondi à 3100 soit, 0x1F selon la spécification) au lieu des 1200 Mbd actuels, pour optimiser la compatibilité en 2.5GE et le fonctionnement avec les drivers mal implémentés.
Bien que cela n’empêche en rien le fonctionnement en 2.5GE en 1200 Mbd, tout ce qui suit est donc facultatif.
Pour réaliser l'opération, il est necessaire de faire un Base64_decode() sur sfp_a0_low_128 en prenant en compte sa spécificité, à savoir les @ en guise de newline (\n), puis à travers un éditeur hexadecimal modifier les octets surlignés en prenant compte de calculer et de reporter le checksum via du 8-bit à l'offset 0x0F:
A gauche la modification à droite l'original, le SN a été censuré.0x02 devient 0x00, cela modifie le transceiver codes et donc unset le transceiver type qui était défini à 1000BASE-LX (SFF-8472), 0x0C devient 0x1F, soit 31 (SFF-8024):
Le checksum quant à lui doit être calculé et donne donc 0xAE.
L'opération inverse doit maintenant être réalisé, à savoir effectuer un Base64_encode() des raw bytes en veillant à reporter les newline correctement.
Puis réaliser un set de sfp_a0_low_128 avec les données et effectuer un hard reboot:
touch /tmp/x.cfg
# Tranfert de x.cfg via SCP en utilisant le shell /bin/sh
fw_setenv sfp_a0_low_128 $(cat /tmp/x.cfg)
Voici le résultat, à savoir un SFP reconnu en 2500BASE-X uniquement et disposant d'un Baud Rate à 3100 Megabaud:
root@X:~# ethtool eth2
Settings for eth2:
Supported ports: [ FIBRE ]
Supported link modes: 2500baseX/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 2500baseX/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 2500Mb/s
Duplex: Full
Port: FIBRE
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: yes
root@X:~# ethtool -m eth2
Identifier : 0x03 (SFP)
Extended identifier : 0x04 (GBIC/SFP defined by 2-wire interface ID)
Connector : 0x01 (SC)
Transceiver codes : 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Encoding : 0x03 (NRZ)
BR, Nominal : 3100MBd
Rate identifier : 0x00 (unspecified)
Length (SMF,km) : 20km
Length (SMF) : 20000m
Length (50um) : 0m
Length (62.5um) : 0m
Length (Copper) : 0m
Length (OM3) : 0m
Laser wavelength : 1310nm
Vendor name : HUAWEI
Vendor OUI : 00:00:00
Vendor PN : MA5671A
Vendor rev : 0000
Option values : 0x00 0x1a
Option : RX_LOS implemented
Option : TX_FAULT implemented
Option : TX_DISABLE implemented
BR margin, max : 0%
BR margin, min : 0%
Vendor SN : XXXXXXXXXXXXXXXX
Date code : 190322
[...]
root@SFP:~# onu lanpsg 0
errorcode=0 pport=0 mode=15 enable=1 link_status=5 phy_duplex=1
root@X:~# wget -O /dev/null http://ipv4.bouygues.testdebit.info/10G.iso
--2024-05-06 05:15:52-- http://ipv4.bouygues.testdebit.info/10G.iso
Resolving ipv4.bouygues.testdebit.info... 89.84.1.186
Connecting to ipv4.bouygues.testdebit.info|89.84.1.186|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10000000000 (9.3G) [application/x-iso9660-image]
Saving to: '/dev/null'
/dev/null 11%[===============> ] 1.10G 227MB/s eta 37s
@hitech39, j'ai testé ce firmware il est sympa, dispose de LuCI activé par défaut, seul downside, je ne le trust pas, même si effectivement on peut appliquer le raisonnement à tous les FW modifiés.
Hope this helps. (: