Support for Forcing Speed/Duplex/Autoneg on i225 with DPDK igc Driver

Stephen Hemminger stephen at networkplumber.org
Sat Aug 2 00:01:59 CEST 2025


On Fri, 1 Aug 2025 17:10:44 +0400 (+04)
Ivan Malov <ivan.malov at arknetworks.am> wrote:

> Hi Renata,
> 
> On Fri, 1 Aug 2025, Renata Saiakhova wrote:
> 
> > 
> > Hi all,
> > 
> > I’m trying to configure Layer 1 attributes (speed, duplex, and autonegotiation) for Intel i225 interfaces in both kernel and DPDK modes, and I’ve run into some issues.
> > 
> > In kernel driver mode, I normally use: “ethtool -s eth5 speed 100 duplex half autoneg off”.
> > 
> > However, this results in the kernel message: “igc 0000:04:00.0 eth5: Force mode currently not supported”.
> > 
> >  
> > 
> > When the interface is bound to DPDK and connected to an OVS bridge, I configure it like this:
> > 
> > ovs-vsctl set Interface 1.extra2 \
> > 
> >   type=dpdk \
> > 
> >   options:dpdk-devargs=0000:04:00.0 \
> > 
> >   options:dpdk-speed=100 \
> > 
> >   options:dpdk-autoneg=false \
> > 
> >   options:dpdk-duplex=half
> > 
> > This should pass the speed/autoneg/duplex settings to the igc DPDK driver via devargs.  
> 
> Should it? Even if these were on the list of supported devargs for the PMD in
> question, they would belong in comma-separated tokens after '0000:04:00.0'.
> I don't see these to be parsed in the OvS, neither do I see such in the PMD.
> 
> Or are you looking at some custom OvS version?
> 
> > 
> > However, it appears these options are not applied — the interface continues to negotiate its settings as usual, and I can’t find any code in the igc DPDK driver that processes these
> > devargs parameters.  
> 
> If these were passed via 'dpdk-devargs', the PMD would've complained perhaps.
> Being passed as OvS's own options, they're likely just ignored by the OvS.
> 
> > 
> > Is support for forced speed/duplex/autoneg available at all for i225 in DPDK (or even kernel) mode? Or is this a hardware limitation?  
> 
> As per [1], 'forced' mode may not be supported in the DPDK PMD. But the code
> suggests one can possibly try to pass, say, 'RTE_ETH_LINK_SPEED_100M_HD',
> without being accompanied by neither 'AUTONEG' nor 'FIXED', but that would still
> come as 'advertised' mode, not a 'forced' one. I may be wrong, though.
> 
> [1] https://github.com/DPDK/dpdk/blob/1b3bf1128d9bda5595861814792f74b8f57160c8/drivers/net/igc/igc_ethdev.c#L1088
> 
> > 
> > Any insight, documentation pointers, or confirmation of support status especially in case of DPDK mode would be greatly appreciated.  
> 
> I take it OvS most likely needs to be augmented with extra code to recognise
> such options and translate those into DPDK link settings. For an example of how
> a DPDK application can do that, one should refer to 'test-pmd' implementation.
> 
> Thank you.
> 
> > 
> > Best regards,
> > 
> >  
> > 
> >  
> > 
> > Renata Saiakhova
> > SW ARCHITECT
> > renata.saiakhova at ekinops.com
> > Tel: +32 16 799 970
> > 
> > [logo_96dpi.gif]
> > 
> > [current.png]
> > 
> >  
> > 
> > 
> >  

Use of driver specific devargs is strongly discouraged.
There is link_speeds in rte_eth_conf passed to rte_eth_dev_configure()
which is the correct way to set fixed speed. It maybe that the driver
doesn't interpret it correctly?


More information about the users mailing list