Skip to content

Commit

Permalink
rndis_host: Fix rndis packet filter flags.
Browse files Browse the repository at this point in the history
RNDIS packet filter flags are not exactly the same as CDC flags
so we cannot reuse them.

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: Bjorge Dijkstra <bjd@jooz.net>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Jussi Kivilinna authored and David S. Miller committed Feb 1, 2008
1 parent 9ff5587 commit a842eda
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion drivers/net/usb/rndis_host.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)) {
Expand Down

0 comments on commit a842eda

Please sign in to comment.