[BPI-R3] Which GPON ONU is working?

Matching these strings? Or which one are we trying to get working…

Just tx_fault_ignore flag

This is just to avoid using the command : fw_setenv asc0 1 in the ONT ?

i’ll be back at home in 1h30 max to check.

Did you post the ethtool output somewhere? I did not find it…

this one with halny quirk, try both images i created

yes, but I think i have to be in the right environment otherwise it doesn’t make sense.

Thank you ! I’ll try it as soon as I get home.

I found some more intersting fixes, that might need applying also:

	if (!memcmp(id.base.vendor_name, "ALCATELLUCENT   ", 16) &&
	    !memcmp(id.base.vendor_pn, "3FE46541AA      ", 16))
		sfp->module_t_start_up = T_START_UP_BAD_GPON;
	else
		sfp->module_t_start_up = T_START_UP;

	if (!memcmp(id.base.vendor_name, "HUAWEI          ", 16) &&
	    !memcmp(id.base.vendor_pn, "MA5671A         ", 16))
		sfp->tx_fault_ignore = true;
	else
		sfp->tx_fault_ignore = false;

See the ALCATELLUCENT SFP needs a 60 seconds delay…

May need sfp->tx_fault_ignore = false; as well, but does the string match with @Rooot his module?

There’s a quirk for long startup as well, i can mix them, but let’s see if the halny quirk worked

Are all gpon modules with embedded system? Maybe it makes sense to delay all of them (e.g. by a sfp-type field) this can be shown in userspace…afair in userspace all sfp are shown as fibre,also copper ones

mine are openwrt based, so i’d say yes.

if i remember well when i insert the Huawei MA5671A i see a message speaking about “something slow detected”…

back at home

when i plug the G-01S-P

root@OpenWrt:/# [   75.125741] sfp sfp-1: module ALCATELLUCENT    G010SP           rev 10   sn ALCLFAB44018     dc 161205

when i plug the MA5671A

[  143.585495] sfp sfp-1: please wait, module slow to respond
root@OpenWrt:/# [  189.949737] sfp sfp-1: module Lantiq           Falcon SFP       rev 0    sn 032WDY10J8020978 dc 180607
[  189.959228] mtk_soc_eth 15100000.ethernet eth1: switched to inband/1000base-x link mode
[  189.996109] hwmon hwmon2: temp1_input not attached to any thermal zone
[  194.683833] sfp sfp-1: module transmit fault indicated
[  198.697366] sfp sfp-1: module transmit fault recovered
[  198.702528] sfp sfp-1: module transmit fault indicated
[  200.016101] sfp sfp-1: module persistently indicates fault, disabling

If there is no known PHY to communicate with, then better it reports as fibre.

@frank-w you asked me ‘ip a’

root@OpenWrt:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1504 qdisc mq state UP qlen 1000
    link/ether 72:68:4d:0f:ba:92 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::7068:4dff:fe0f:ba92/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq master br-wan state DOWN qlen 1000
    link/ether 72:68:4d:0f:ba:93 brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.1/24 brd 192.168.20.255 scope global eth1
       valid_lft forever preferred_lft forever
4: wan@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-wan state LOWERLAYERDOWN qlen 1000
    link/ether 72:68:4d:0f:ba:93 brd ff:ff:ff:ff:ff:ff
5: lan1@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 72:68:4d:0f:ba:92 brd ff:ff:ff:ff:ff:ff
6: lan2@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 72:68:4d:0f:ba:92 brd ff:ff:ff:ff:ff:ff
7: lan3@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 72:68:4d:0f:ba:92 brd ff:ff:ff:ff:ff:ff
8: lan4@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 72:68:4d:0f:ba:92 brd ff:ff:ff:ff:ff:ff
9: sfp2@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 72:68:4d:0f:ba:92 brd ff:ff:ff:ff:ff:ff
15: br-lan: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 72:68:4d:0f:ba:92 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global br-lan
       valid_lft forever preferred_lft forever
    inet6 fd33:6451:7ce0::1/60 scope global tentative noprefixroute
       valid_lft forever preferred_lft forever
16: br-wan: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 72:68:4d:0f:ba:93 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::7068:4dff:fe0f:ba93/64 scope link
       valid_lft forever preferred_lft forever
root@OpenWrt:/#

@Dale

At 2.5Gbps inband negotiation is a pain in the … Better also include in the quirk:

	linkmode_clear_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, modes);

here you see that eth1 is attached to br-wan, so assigning an IP address to the physical interface does not work…try to remove it there and add it to the bridge or take eth1 out of bridge

and of course interface needs to be put up

And add a route? Maybe?

nope, same subnet is always routed to the interface having the same subnet…if you add an ip to an interface the corresponding route will be added automaticly

you only need to manually add routes if the target-subnet is not known by your device…

root@OpenWrt:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1504 qdisc mq state UP qlen 1000
    link/ether 72:68:4d:0f:ba:92 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::7068:4dff:fe0f:ba92/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq master br-wan state DOWN qlen 1000
    link/ether 72:68:4d:0f:ba:93 brd ff:ff:ff:ff:ff:ff
4: wan@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-wan state LOWERLAYERDOWN qlen 1000
    link/ether 72:68:4d:0f:ba:93 brd ff:ff:ff:ff:ff:ff
5: lan1@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 72:68:4d:0f:ba:92 brd ff:ff:ff:ff:ff:ff
6: lan2@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 72:68:4d:0f:ba:92 brd ff:ff:ff:ff:ff:ff
7: lan3@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 72:68:4d:0f:ba:92 brd ff:ff:ff:ff:ff:ff
8: lan4@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 72:68:4d:0f:ba:92 brd ff:ff:ff:ff:ff:ff
9: sfp2@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN qlen 1000
    link/ether 72:68:4d:0f:ba:92 brd ff:ff:ff:ff:ff:ff
17: br-lan: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 72:68:4d:0f:ba:92 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global br-lan
       valid_lft forever preferred_lft forever
    inet6 fd33:6451:7ce0::1/60 scope global tentative noprefixroute
       valid_lft forever preferred_lft forever
18: br-wan: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 72:68:4d:0f:ba:93 brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.1/24 brd 192.168.20.255 scope global br-wan
       valid_lft forever preferred_lft forever
root@OpenWrt:/# ping 192.168.20.10
PING 192.168.20.10 (192.168.20.10): 56 data bytes

OK, did it.

no ping answer

root@OpenWrt:/# cat /etc/config/network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd33:6451:7ce0::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'
        list ports 'sfp2'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'

config device
        option name 'br-wan'
        option type 'bridge'
        list ports 'eth1'
        list ports 'wan'

config device
        option name 'eth1'
        option macaddr '72:68:4d:0f:ba:93'

config device
        option name 'wan'
        option macaddr '72:68:4d:0f:ba:93'

config interface 'wan'
        option device 'br-wan'
        option proto 'dhcp'

config interface 'wan6'
        option device 'br-wan'
        option proto 'dhcpv6'

config interface 'ont'
        option proto 'static'
        option device 'br-wan'
        option ipaddr '192.168.20.1'
        option netmask '255.255.255.0'

root@OpenWrt:/#