Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Mar 2017 11:04:14 +0300
From:      =?UTF-8?B?w5Z6a2FuIEtJUklL?= <ozkan.kirik@gmail.com>
To:        freebsd-pf@freebsd.org
Subject:   ALTQ on epair not working
Message-ID:  <CAAcX-AF-j4tG3MQOeZk30RTxVAfd86EsqUAJ_miQJjoYX0oHRw@mail.gmail.com>

next in thread | raw e-mail | index | archive | help

Hello,

I'm using FreeBSD 10.3-p17 amd64. epair pseudo device is listed as
supperted deviced at the Man page of altq(4).
>From man page of altq :

*SUPPORTED DEVICES <https://www.freebsd.org/cgi/man.cgi?query=altq#end>*

     The driver	modifications described	in altq(9)
<https://www.freebsd.org/cgi/man.cgi?query=altq&sektion=9&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>;
are required	to use a cer-
     tain network card with *ALTQ*.  They	have been applied to the following
     hardware drivers: ae(4)
<https://www.freebsd.org/cgi/man.cgi?query=ae&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
age(4) <https://www.freebsd.org/cgi/man.cgi?query=age&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
alc(4) <https://www.freebsd.org/cgi/man.cgi?query=alc&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
ale(4) <https://www.freebsd.org/cgi/man.cgi?query=ale&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
an(4) <https://www.freebsd.org/cgi/man.cgi?query=an&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
ath(4) <https://www.freebsd.org/cgi/man.cgi?query=ath&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
aue(4) <https://www.freebsd.org/cgi/man.cgi?query=aue&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
     axe(4) <https://www.freebsd.org/cgi/man.cgi?query=axe&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
bce(4) <https://www.freebsd.org/cgi/man.cgi?query=bce&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
bfe(4) <https://www.freebsd.org/cgi/man.cgi?query=bfe&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
bge(4) <https://www.freebsd.org/cgi/man.cgi?query=bge&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
bxe(4) <https://www.freebsd.org/cgi/man.cgi?query=bxe&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
cas(4) <https://www.freebsd.org/cgi/man.cgi?query=cas&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
cxgbe(4) <https://www.freebsd.org/cgi/man.cgi?query=cxgbe&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
dc(4) <https://www.freebsd.org/cgi/man.cgi?query=dc&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
de(4) <https://www.freebsd.org/cgi/man.cgi?query=de&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
     ed(4) <https://www.freebsd.org/cgi/man.cgi?query=ed&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
em(4) <https://www.freebsd.org/cgi/man.cgi?query=em&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
ep(4) <https://www.freebsd.org/cgi/man.cgi?query=ep&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
epair(4) <https://www.freebsd.org/cgi/man.cgi?query=epair&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports>,
....

But while trying to use it the system says that it's not suppoerted. I
tried on FreeBSD 11 also. The output is below:

pf.conf :
altq on epair0b hfsc bandwidth 1Mb queue { ftp, ssh, icmp, other }
queue ftp bandwidth 30% priority 0 hfsc (upperlimit 99%)
queue ssh bandwidth 30% priority 2 hfsc (upperlimit 99%)
queue icmp bandwidth 10% priority 2 hfsc (upperlimit 99%)
queue other bandwidth 30% priority 1 hfsc (default upperlimit 99%)


# ifconfig epair0 create
# ifconfig epair0a up
# ifconfig epair0b up
# pfctl -f pf.conf
pfctl: epair0b: driver does not support altq

# sysctl -a | grep ALTQ
options ALTQ_NOPCC
options ALTQ_PRIQ
options ALTQ_CDNR
options ALTQ_HFSC
options ALTQ_RIO
options ALTQ_RED
options ALTQ_CBQ
options ALTQ


I have a look on /usr/src/sys/net/if_epair.c, and found the ALTQ section:

514 #ifdef ALTQ
 515         /* Support ALTQ via the clasic if_start() path. */
 516         IF_LOCK(&ifp->if_snd);
 517         if (ALTQ_IS_ENABLED(&ifp->if_snd)) {
 518                 ALTQ_ENQUEUE(&ifp->if_snd, m, NULL, error);
 519                 if (error)
 520                         ifp->if_snd.ifq_drops++;
 521                 IF_UNLOCK(&ifp->if_snd);
 522                 if (!error) {
 523                         ifp->if_obytes += len;
 524                         if (mflags & (M_BCAST|M_MCAST))
 525                                 ifp->if_omcasts++;
 526
 527                         if ((ifp->if_drv_flags & IFF_DRV_OACTIVE) == 0)
 528                                 epair_start_locked(ifp);
 529                         else
 530                                 (void)epair_add_ifp_for_draining(ifp);
 531                 }
 532                 return (error);
 533         }
 534         IF_UNLOCK(&ifp->if_snd);
 535 #endif

I have no idea that why it says that it doesn't support altq altough the
source code contains ALTQ section.


Regards
Özkan KIRIK



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAAcX-AF-j4tG3MQOeZk30RTxVAfd86EsqUAJ_miQJjoYX0oHRw>