On Tue, 5 Jan 2021 18:24:37 +0100 Sven Auhagen <sven.auha...@voleatech.de> wrote:
> On Tue, Jan 05, 2021 at 06:19:21PM +0100, Marek Behún wrote: > > Currently mvpp2_xdp_setup won't allow attaching XDP program if > > mtu > ETH_DATA_LEN (1500). > > > > The mvpp2_change_mtu on the other hand checks whether > > MVPP2_RX_PKT_SIZE(mtu) > MVPP2_BM_LONG_PKT_SIZE. > > > > These two checks are semantically different. > > > > Moreover this limit can be increased to MVPP2_MAX_RX_BUF_SIZE, since in > > mvpp2_rx we have > > xdp.data = data + MVPP2_MH_SIZE + MVPP2_SKB_HEADROOM; > > xdp.frame_sz = PAGE_SIZE; > > > > Change the checks to check whether > > mtu > MVPP2_MAX_RX_BUF_SIZE > > Hello Marek, > > in general, XDP is based on the model, that packets are not bigger than 1500. > I am not sure if that has changed, I don't believe Jumbo Frames are > upstreamed yet. > You are correct that the MVPP2 driver can handle bigger packets without a > problem but > if you do XDP redirect that won't work with other drivers and your packets > will disappear. At least 1508 is required when I want to use XDP with a Marvell DSA switch: the DSA header is 4 or 8 bytes long there. The DSA driver increases MTU on CPU switch interface by this length (on my switches to 1504). So without this I cannot use XDP with mvpp2 with a Marvell switch with default settings, which I think is not OK. Since with the mvneta driver it works (mvneta checks for MVNETA_MAX_RX_BUF_SIZE rather than ETH_DATA_LEN), I think it should also work with mvpp2. Marek