Index | Thread | Search

From:
Kirill A. Korinsky <kirill@korins.ky>
Subject:
Re: octeon: commuliative patch LRO, cnmac queue and softens
To:
Visa Hankala <visa@hankala.org>
Cc:
tech@openbsd.org
Date:
Sun, 05 Apr 2026 11:35:44 +0200

Download raw body.

Thread
On Fri, 03 Apr 2026 16:28:34 +0200,
Visa Hankala <visa@hankala.org> wrote:
> 
> > @@ -108,22 +110,30 @@ cn30xxpip_port_config(struct cn30xxpip_s
> >  	/* SKIP=0 */
> >  
> >  	prt_tag = 0;
> > +	SET(prt_tag, PIP_PRT_TAGN_INC_VLAN);
> >  	SET(prt_tag, PIP_PRT_TAGN_INC_PRT);
> 
> I wonder if VLAN id and input port number should be left out from
> the packet tag. This would make the tag symmetric with regards to IP
> addresses and TCP/UDP ports, and let the same CPU core handle both
> directions of TCP/UDP flows. This might improve CPU cache locality
> and performance when forwarding multiple flows. Of course, the
> symmetricity is lost if packets are transformed for example by NAT
> or tunneling.
>

Not sure that I get the idea of symmetric. Right now it uses SRC and DST
addresses and ports, and for an opposite dirrection it should have reversed
addresses and ports, isn't it?

Also, VLAN id and input port number is here to make differen tag for cases:
 - routing traffic between vlans on the same port
 - and routing traffic between ports on the same vlan

Numbers for iperf in single thread when two machines are in different vlan
but on the same cnmac:

1) -current:

[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   324 MBytes   272 Mbits/sec    0             sender
[  5]   0.00-10.01  sec   324 MBytes   272 Mbits/sec                  receiver

2) without VLAN and port number:

[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   397 MBytes   333 Mbits/sec    0             sender
[  5]   0.00-10.01  sec   396 MBytes   332 Mbits/sec                  receiver

3) with VLAN and port number:

[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   442 MBytes   371 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   442 MBytes   371 Mbits/sec                  receiver

and in the case (3) I see that two softnets are active

-- 
wbr, Kirill