[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20071223010646.83BC3230E0A@adsl-69-226-248-13.dsl.pltn13.pacbell.net>
Date: Sat, 22 Dec 2007 17:06:46 -0800
From: David Brownell <david-b@...bell.net>
To: bjd@...z.net
Cc: netdev@...r.kernel.org, linux-wireless@...r.kernel.org,
jussi.kivilinna@...et.fi
Subject: Re: [PATCH 5/8] Fix rndis packet filter flags.
> From bjd@...z.net Sat Dec 22 13:53:12 2007
> From: Bjorge Dijkstra <bjd@...z.net>
> To: dbrownell@...rs.sourceforge.net
> Cc: netdev@...r.kernel.org, linux-wireless@...r.kernel.org,
> Jussi Kivilinna <jussi.kivilinna@...et.fi>
> Subject: [PATCH 5/8] Fix rndis packet filter flags.
> Date: Sat, 22 Dec 2007 22:51:31 +0100
>
> From: Jussi Kivilinna <jussi.kivilinna@...et.fi>
>
> RNDIS packet filter flags are not exactly the same as CDC flags
> so we cannot reuse them.
>
> Signed-off-by: Jussi Kivilinna <jussi.kivilinna@...et.fi>
> Signed-off-by: Bjorge Dijkstra <bjd@...z.net>
Acked-by: David Brownell <dbrownell@...rs.sourceforge.net>
Hmm, the list seems to have grown since I last looked at it.
Or maybe it's just that the MSFT documentation was so hard
to make sense of ... I never could figure out what the RNDIS
power management messages were supposed to be doing, or what
the extra seemingly-undocumented messages were there for.
> ---
> drivers/net/usb/rndis_host.c | 23 ++++++++++++++++++++++-
> 1 files changed, 22 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/usb/rndis_host.c b/drivers/net/usb/rndis_host.c
> index c686025..3c116f9 100644
> --- a/drivers/net/usb/rndis_host.c
> +++ b/drivers/net/usb/rndis_host.c
> @@ -256,6 +256,27 @@ struct rndis_keepalive_c { /* IN (optionally OUT) */
> #define OID_GEN_MAXIMUM_FRAME_SIZE ccpu2(0x00010106)
> #define OID_GEN_CURRENT_PACKET_FILTER ccpu2(0x0001010e)
>
> +/* packet filter bits used by OID_GEN_CURRENT_PACKET_FILTER */
> +#define RNDIS_PACKET_TYPE_DIRECTED ccpu2(0x00000001)
> +#define RNDIS_PACKET_TYPE_MULTICAST ccpu2(0x00000002)
> +#define RNDIS_PACKET_TYPE_ALL_MULTICAST ccpu2(0x00000004)
> +#define RNDIS_PACKET_TYPE_BROADCAST ccpu2(0x00000008)
> +#define RNDIS_PACKET_TYPE_SOURCE_ROUTING ccpu2(0x00000010)
> +#define RNDIS_PACKET_TYPE_PROMISCUOUS ccpu2(0x00000020)
> +#define RNDIS_PACKET_TYPE_SMT ccpu2(0x00000040)
> +#define RNDIS_PACKET_TYPE_ALL_LOCAL ccpu2(0x00000080)
> +#define RNDIS_PACKET_TYPE_GROUP ccpu2(0x00001000)
> +#define RNDIS_PACKET_TYPE_ALL_FUNCTIONAL ccpu2(0x00002000)
> +#define RNDIS_PACKET_TYPE_FUNCTIONAL ccpu2(0x00004000)
> +#define RNDIS_PACKET_TYPE_MAC_FRAME ccpu2(0x00008000)
> +
> +/* default filter used with RNDIS devices */
> +#define RNDIS_DEFAULT_FILTER ( \
> + RNDIS_PACKET_TYPE_DIRECTED | \
> + RNDIS_PACKET_TYPE_BROADCAST | \
> + RNDIS_PACKET_TYPE_ALL_MULTICAST | \
> + RNDIS_PACKET_TYPE_PROMISCUOUS )
> +
> /*
> * RNDIS notifications from device: command completion; "reverse"
> * keepalives; etc
> @@ -551,7 +572,7 @@ static int rndis_bind(struct usbnet *dev, struct usb_interface *intf)
> u.set->oid = OID_GEN_CURRENT_PACKET_FILTER;
> u.set->len = ccpu2(4);
> u.set->offset = ccpu2((sizeof *u.set) - 8);
> - *(__le32 *)(u.buf + sizeof *u.set) = ccpu2(DEFAULT_FILTER);
> + *(__le32 *)(u.buf + sizeof *u.set) = RNDIS_DEFAULT_FILTER;
>
> retval = rndis_command(dev, u.header);
> if (unlikely(retval < 0)) {
> --
> 1.5.2.5
>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists