Hi Nick,

You need to set the ALTQF_READY flag inside the igb driver. Make sure you have something like this in if_igb.c:

    ifp->if_start = igb_start;
    IFQ_SET_MAXLEN(&ifp->if_snd, adapter->num_tx_desc - 1);
    ifp->if_snd.ifq_drv_maxlen = adapter->num_tx_desc - 1;
    IFQ_SET_READY(&ifp->if_snd);

The call to IFQ_SET_READY() is what will enable ALTQ on your device.

Regards,

Karim.

On 02/04/2013 9:58 AM, Nick Rogers wrote:
On Tuesday, April 2, 2013, Karim Fodil-Lemelin wrote:

Hi Nick,

Can you verify that you have at least one of those options in your kernel
config file:

ALTQ_CBQ
ALTQ_PRIQ
ALTQ_HFSC

Yes I have hfsc included in the kernel. I have other machines using altq
with em(4) interfaces and similar pf configurations on the same kernel that
work fine.


Regards,

Karim.

On 01/04/2013 8:22 PM, Nick Rogers wrote:

On Mon, Apr 1, 2013 at 8:44 AM, Karim Fodil-Lemelin
<fodillemlinka...@gmail.com> wrote:

Hi Jack,

I think this would help M. Rogers case as we have done something similar
here to circumvent the issue and it seems to work well. I would also add
that when using ALTQ we found it much more stable to set the number of
queues to 1:

static int igb_num_queues = 1;

Our approach consisted in keeping igb_start() defined and using
igb_mq_start_locked() inside it instead of igb_start_locked().

Regards,

Karim.

Thanks for the pointer.

I've been working with Jack to get a fix for this in that downgrades
the stack to the older if_start/non-multiqueue interface. See the
following two commits he made to HEAD.

http://svnweb.freebsd.org/**base/head/sys/dev/e1000/if_**
igb.c?revision=248906&view=**markup<http://svnweb.freebsd.org/base/head/sys/dev/e1000/if_igb.c?revision=248906&view=markup>
http://svnweb.freebsd.org/**base/head/sys/dev/e1000/if_**
igb.h?revision=248908&view=**markup<http://svnweb.freebsd.org/base/head/sys/dev/e1000/if_igb.h?revision=248908&view=markup>

I've applied these changes to latest 9.1-STABLE src and included the
IGB_LEGACY_TX in the e1000 Makefile. So far I am not having any luck
getting pfctl to think igb is supported.

i.e. I am still getting the following when loading my PF config:
pfctl -f /etc/pf.conf
pfctl: igb0: driver does not support altq

Can anyone comment on if the above referenced changes that Jack made
should be sufficient to get ALTQ working with igb?

The error is coming from src/contrib/pf/pfctl/pfctl.c. There seems to
be a function that checks if the driver is supported or not but I
cannot figure out why the ioctl is not returning a device.

Here is the device check code for reference:

int
pfctl_add_altq(struct pfctl *pf, struct pf_altq *a)
{
          if (altqsupport &&
              (loadopt & PFCTL_FLAG_ALTQ) != 0) {
                  memcpy(&pf->paltq->altq, a, sizeof(struct pf_altq));
                  if ((pf->opts & PF_OPT_NOACTION) == 0) {
                          if (ioctl(pf->dev, DIOCADDALTQ, pf->paltq)) {
                                  if (errno == ENXIO)
                                          errx(1, "qtype not configured");
                                  else if (errno == ENODEV)
                                          errx(1, "%s: driver does not
support "
                                              "altq", a->ifname);
                                  else
                                          err(1, "DIOCADDALTQ");
                          }
                  }
                  pfaltq_store(&pf->paltq->altq)**;
          }
          return (0);
}





On 28/03/2013 7:16 PM, Jack Vogel wrote:

Have been kept fairly busy with other matters, one thing I could do short
term is
change the defines in igb the way I did in the em driver so you could
still
define
the older if_start entry. Right now those are based on OS version and so
you will
automatically get if_transmit, but I could change it to be IGB_LEGACY_TX
or
so,
and that could be defined in the Makefile.

Would this help?

Jack


On Thu, Mar 28, 2013 at 2:31 PM, Nick Rogers <ncrog...@gmail.com> wrote:

  On Tue, Dec 11, 2012 at 1:09 AM, Jack Vogel <jfvo...@gmail.com> wrote:

On Mon, Dec 10, 2012 at 11:58 PM, Gleb Smirnoff <gleb...@freebsd.org>

wrote:

On Mon, Dec 10, 2012 at 03:31:19PM -0800, Jack Vogel wrote:
J> UH, maybe asking the owner of the driver would help :)
J>
J> ... and no, I've never been aware of doing anything to stop

supporting


_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to