bnxt: XDP multibuffer enablement
Allow aggregation buffers to be in place in the receive path and allow XDP programs to be attached when using a larger than 4k MTU. v3: Add a check to sure XDP program supports multipage packets. Signed-off-by: Andy Gospodarek <gospo@broadcom.com> Signed-off-by: Michael Chan <michael.chan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a7559bc8c1
commit
9f4b28301c
@ -1939,8 +1939,7 @@ static int bnxt_rx_pkt(struct bnxt *bp, struct bnxt_cp_ring_info *cpr,
|
||||
xdp_active = true;
|
||||
}
|
||||
|
||||
/* skip running XDP prog if there are aggregation bufs */
|
||||
if (!agg_bufs && xdp_active) {
|
||||
if (xdp_active) {
|
||||
if (bnxt_rx_xdp(bp, rxr, cons, xdp, data, &len, event)) {
|
||||
rc = 1;
|
||||
goto next_rx;
|
||||
|
@ -387,8 +387,9 @@ static int bnxt_xdp_set(struct bnxt *bp, struct bpf_prog *prog)
|
||||
int tx_xdp = 0, rc, tc;
|
||||
struct bpf_prog *old;
|
||||
|
||||
if (prog && bp->dev->mtu > BNXT_MAX_PAGE_MODE_MTU) {
|
||||
netdev_warn(dev, "MTU %d larger than largest XDP supported MTU %d.\n",
|
||||
if (prog && !prog->aux->xdp_has_frags &&
|
||||
bp->dev->mtu > BNXT_MAX_PAGE_MODE_MTU) {
|
||||
netdev_warn(dev, "MTU %d larger than %d without XDP frag support.\n",
|
||||
bp->dev->mtu, BNXT_MAX_PAGE_MODE_MTU);
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user