Summary: | if_qlxgb (QLogic cLOM8214) not working for me when configured via netif | ||||||
---|---|---|---|---|---|---|---|
Product: | Base System | Reporter: | pcm | ||||
Component: | kern | Assignee: | freebsd-net (Nobody) <net> | ||||
Status: | Closed DUPLICATE | ||||||
Severity: | Affects Only Me | CC: | bchow, bkk, lwhsu, markj, novacrash_ | ||||
Priority: | --- | ||||||
Version: | 11.1-STABLE | ||||||
Hardware: | amd64 | ||||||
OS: | Any | ||||||
See Also: | https://github.com/freebsd/freebsd/pull/429 | ||||||
Attachments: |
|
Description
pcm
2018-02-26 13:35:25 UTC
I am seeing this exact behavior. If I unplug the interface, manually configure the mtu using ifconfig and replug the device, it works just fine. However, when it's automatically configured, I am seeing the same error as the original bug report. Was there ever any resolution or work around? I ended up using /etc/rc.local to configure the interface. Sadly i do not have access to the server anymore to post you my config because i got a new job. It happens also to me with OPNsense wich uses (up to now 11.1) But they swap to 12.1 this month. And the bufg is also in 12.x see: https://forums.freebsd.org/threads/qlxgb-kernel-driver-errors-out-when-configured.68702/ Is there any progress? Created attachment 213710 [details]
Fix that mtu not initialized bug
MTU need to be initialized before qla_os:685
ha->max_frame_size = ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN;
Otherwise packet is always flagged as too big in qla_hw.c:1003
if ((mp->m_pkthdr.len > ha->max_frame_size)||(nsegs > Q8_TX_MAX_SEGMENTS)) {
I also moved qla_os:694
ifp->if_capabilities = IFCAP_LINKSTATE;
Before qla_os:687
ether_ifattach(ifp, qla_get_mac_addr(ha));
Like in qlxgbe/ql_os:877 because I had trouble doing ifconfig ql0 up for bridge.
Comment on attachment 213710 [details]
Fix that mtu not initialized bug
diff --git a/sys/dev/qlxgb/qla_os.c b/sys/dev/qlxgb/qla_os.c
index 0b5daa98891..997f1eccf76 100644
--- a/sys/dev/qlxgb/qla_os.c
+++ b/sys/dev/qlxgb/qla_os.c
@@ -672,6 +672,9 @@ qla_init_ifnet(device_t dev, qla_host_t *ha)
if_initname(ifp, device_get_name(dev), device_get_unit(dev));
ifp->if_baudrate = IF_Gbps(10);
+ ifp->if_capabilities = IFCAP_LINKSTATE;
+ ifp->if_mtu = ETHERMTU;
+
ifp->if_init = qla_init;
ifp->if_softc = ha;
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
@@ -691,7 +694,6 @@ qla_init_ifnet(device_t dev, qla_host_t *ha)
IFCAP_JUMBO_MTU;
ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING | IFCAP_VLAN_MTU;
- ifp->if_capabilities |= IFCAP_LINKSTATE;
#if defined(__FreeBSD_version) && (__FreeBSD_version < 900002)
ifp->if_timer = 0;
Sorry it took so long for this to get resolved. Thanks to Christian it's fixed in head now and will be merged in a few days. *** This bug has been marked as a duplicate of bug 249050 *** |