Check if interface supports Device Polling
Eduardo Meyer
dudu.meyer at gmail.com
Wed Oct 22 07:09:33 PDT 2008
On Tue, Oct 21, 2008 at 7:29 PM, pluknet <pluknet at gmail.com> wrote:
> 2008/10/21 Eduardo Meyer <dudu.meyer at gmail.com>:
>> Is there another way to check if a certain interface supports polling,
>> other than reading polling(4)? I would like to have a script to check
>> it, issuing something like
>>
>> ifconfig -v -m <nic>
>>
>> How can I list all NIC capabilities? Would polling be listed if the
>> driver supports?
>>
>
> I don't know if ifconfig supports listing NIC capabilities, but you can
> always add this. Something like:
>
> --- ifconfig.c.orig 2008-10-22 00:50:03.000000000 +0400
> +++ ifconfig.c 2008-10-22 01:28:21.000000000 +0400
> @@ -708,6 +708,19 @@
> }
>
> void
> +getifcaps(const char *vname, int value, int s, const struct afswtch *afp)
> +{
> + int flags;
> +
> + if (ioctl(s, SIOCGIFCAP, (caddr_t)&ifr) < 0) {
> + Perror("ioctl (SIOCGIFCAP)");
> + exit(1);
> + }
> + flags = ifr.ifr_reqcap;
> + printf("Capabilities: %x\n", flags);
> +}
> +
> +void
> setifcap(const char *vname, int value, int s, const struct afswtch *afp)
> {
> int flags;
> @@ -1009,6 +1022,7 @@
> DEF_CMD("-monitor", -IFF_MONITOR, setifflags),
> DEF_CMD("staticarp", IFF_STATICARP, setifflags),
> DEF_CMD("-staticarp", -IFF_STATICARP, setifflags),
> + DEF_CMD("caps", 0, getifcaps),
> DEF_CMD("rxcsum", IFCAP_RXCSUM, setifcap),
> DEF_CMD("-rxcsum", -IFCAP_RXCSUM, setifcap),
> DEF_CMD("txcsum", IFCAP_TXCSUM, setifcap),
> $ diff -u ifconfig.h.orig ifconfig.h
> --- ifconfig.h.orig 2008-04-27 20:12:43.000000000 +0400
> +++ ifconfig.h 2008-10-22 00:56:14.000000000 +0400
> @@ -134,6 +134,7 @@
> extern int verbose;
>
> void setifcap(const char *, int value, int s, const struct afswtch *);
> +void getifcaps(const char *, int value, int s, const struct afswtch *);
>
> void Perror(const char *cmd);
> void printb(const char *s, unsigned value, const char *bits);
> --
> wbr,
> pluknet
>
I have applied your patch, but all I get is:
# ifconfig -v rl0 caps
Capabilities: 48
I would love to see for wired NICs something like:
ifconfig -m ath0 list caps
ath0=6783edcf<WEP,TKIP,AES,AES_CCM,FF,TURBOP,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,TKIPMIC,WPA1,WPA2,BURST,WME,BGSCAN,TXFRAG>
Amazing stuff :-) I wish I could hack that.
--
===========
Eduardo Meyer
pessoal: dudu.meyer at gmail.com
profissional: ddm.farmaciap at saude.gov.br
More information about the freebsd-stable
mailing list