git: 21d0c01226eb - main - netmap: iflib: add nm_config callback

Emmanuel Vadot manu at bidouilliste.com
Mon Mar 29 14:39:12 UTC 2021


 Hi Vincenzo,

On Mon, 29 Mar 2021 09:59:39 GMT
Vincenzo Maffione <vmaffione at FreeBSD.org> wrote:

> The branch main has been updated by vmaffione:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=21d0c01226eb979556d6d792ec58eb54012fbc24
> 
> commit 21d0c01226eb979556d6d792ec58eb54012fbc24
> Author:     you at x <you at x>

 I don't think that you've setup your env correctly.

> AuthorDate: 2021-03-29 09:26:12 +0000
> Commit:     Vincenzo Maffione <vmaffione at FreeBSD.org>
> CommitDate: 2021-03-29 09:31:18 +0000
> 
>     netmap: iflib: add nm_config callback
>     
>     This per-driver callback is invoked by netmap when it wants
>     to align the number of TX/RX netmap rings and/or the number of
>     TX/RX netmap slots to the actual state configured in the hardware.
>     The alignment happens when netmap mode is switched on (with no
>     active netmap file descriptors for that netmap port), or when
>     collecting netmap port information.
>     
>     MFC after:      1 week
> ---
>  sys/net/iflib.c | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
> 
> diff --git a/sys/net/iflib.c b/sys/net/iflib.c
> index 05e99ba318df..f6cf1233a3b5 100644
> --- a/sys/net/iflib.c
> +++ b/sys/net/iflib.c
> @@ -829,6 +829,26 @@ iflib_netmap_register(struct netmap_adapter *na, int onoff)
>  	return (status);
>  }
>  
> +static int
> +iflib_netmap_config(struct netmap_adapter *na, struct nm_config_info *info)
> +{
> +	if_t ifp = na->ifp;
> +	if_ctx_t ctx = ifp->if_softc;
> +	iflib_rxq_t rxq = &ctx->ifc_rxqs[0];
> +	iflib_fl_t fl = &rxq->ifr_fl[0];
> +
> +	info->num_tx_rings = ctx->ifc_softc_ctx.isc_ntxqsets;
> +	info->num_rx_rings = ctx->ifc_softc_ctx.isc_nrxqsets;
> +	info->num_tx_descs = iflib_num_tx_descs(ctx);
> +	info->num_rx_descs = iflib_num_rx_descs(ctx);
> +	info->rx_buf_maxsize = fl->ifl_buf_size;
> +	nm_prinf("txr %u rxr %u txd %u rxd %u rbufsz %u",
> +		info->num_tx_rings, info->num_rx_rings, info->num_tx_descs,
> +		info->num_rx_descs, info->rx_buf_maxsize);
> +
> +	return 0;
> +}
> +
>  static int
>  netmap_fl_refill(iflib_rxq_t rxq, struct netmap_kring *kring, bool init)
>  {
> @@ -1279,6 +1299,7 @@ iflib_netmap_attach(if_ctx_t ctx)
>  	na.nm_rxsync = iflib_netmap_rxsync;
>  	na.nm_register = iflib_netmap_register;
>  	na.nm_intr = iflib_netmap_intr;
> +	na.nm_config = iflib_netmap_config;
>  	na.num_tx_rings = ctx->ifc_softc_ctx.isc_ntxqsets;
>  	na.num_rx_rings = ctx->ifc_softc_ctx.isc_nrxqsets;
>  	return (netmap_attach(&na));


-- 
Emmanuel Vadot <manu at bidouilliste.com> <manu at freebsd.org>


More information about the dev-commits-src-main mailing list