diff options
author | Jussi Kivilinna <jussi.kivilinna@mbnet.fi> | 2008-01-27 16:34:33 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-31 22:26:59 -0500 |
commit | 039ee17d1baabaa21783a0d5ab3e8c6d8c794bdf (patch) | |
tree | 245fafd78aa16a002b7aa7d539f517172d256338 /drivers/net/usb/rndis_host.h | |
parent | 5d6ecf6c5d4994198527496fa51ea119030400e0 (diff) |
rndis_host: Add RNDIS physical medium checking into generic_rndis_bind()
Add RNDIS physical medium checking into generic_rndis_bind() and also make
rndis_host to be only bind on every medium except wireless.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
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>
Diffstat (limited to 'drivers/net/usb/rndis_host.h')
-rw-r--r-- | drivers/net/usb/rndis_host.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/drivers/net/usb/rndis_host.h b/drivers/net/usb/rndis_host.h index 61f1fd8f5ff6..edc1d4a0e272 100644 --- a/drivers/net/usb/rndis_host.h +++ b/drivers/net/usb/rndis_host.h | |||
@@ -82,6 +82,17 @@ struct rndis_msg_hdr { | |||
82 | #define RNDIS_STATUS_MEDIA_CONNECT ccpu2(0x4001000b) | 82 | #define RNDIS_STATUS_MEDIA_CONNECT ccpu2(0x4001000b) |
83 | #define RNDIS_STATUS_MEDIA_DISCONNECT ccpu2(0x4001000c) | 83 | #define RNDIS_STATUS_MEDIA_DISCONNECT ccpu2(0x4001000c) |
84 | 84 | ||
85 | /* codes for OID_GEN_PHYSICAL_MEDIUM */ | ||
86 | #define RNDIS_PHYSICAL_MEDIUM_UNSPECIFIED ccpu2(0x00000000) | ||
87 | #define RNDIS_PHYSICAL_MEDIUM_WIRELESS_LAN ccpu2(0x00000001) | ||
88 | #define RNDIS_PHYSICAL_MEDIUM_CABLE_MODEM ccpu2(0x00000002) | ||
89 | #define RNDIS_PHYSICAL_MEDIUM_PHONE_LINE ccpu2(0x00000003) | ||
90 | #define RNDIS_PHYSICAL_MEDIUM_POWER_LINE ccpu2(0x00000004) | ||
91 | #define RNDIS_PHYSICAL_MEDIUM_DSL ccpu2(0x00000005) | ||
92 | #define RNDIS_PHYSICAL_MEDIUM_FIBRE_CHANNEL ccpu2(0x00000006) | ||
93 | #define RNDIS_PHYSICAL_MEDIUM_1394 ccpu2(0x00000007) | ||
94 | #define RNDIS_PHYSICAL_MEDIUM_WIRELESS_WAN ccpu2(0x00000008) | ||
95 | #define RNDIS_PHYSICAL_MEDIUM_MAX ccpu2(0x00000009) | ||
85 | 96 | ||
86 | struct rndis_data_hdr { | 97 | struct rndis_data_hdr { |
87 | __le32 msg_type; /* RNDIS_MSG_PACKET */ | 98 | __le32 msg_type; /* RNDIS_MSG_PACKET */ |
@@ -222,6 +233,7 @@ struct rndis_keepalive_c { /* IN (optionally OUT) */ | |||
222 | #define OID_802_3_PERMANENT_ADDRESS ccpu2(0x01010101) | 233 | #define OID_802_3_PERMANENT_ADDRESS ccpu2(0x01010101) |
223 | #define OID_GEN_MAXIMUM_FRAME_SIZE ccpu2(0x00010106) | 234 | #define OID_GEN_MAXIMUM_FRAME_SIZE ccpu2(0x00010106) |
224 | #define OID_GEN_CURRENT_PACKET_FILTER ccpu2(0x0001010e) | 235 | #define OID_GEN_CURRENT_PACKET_FILTER ccpu2(0x0001010e) |
236 | #define OID_GEN_PHYSICAL_MEDIUM ccpu2(0x00010202) | ||
225 | 237 | ||
226 | /* packet filter bits used by OID_GEN_CURRENT_PACKET_FILTER */ | 238 | /* packet filter bits used by OID_GEN_CURRENT_PACKET_FILTER */ |
227 | #define RNDIS_PACKET_TYPE_DIRECTED ccpu2(0x00000001) | 239 | #define RNDIS_PACKET_TYPE_DIRECTED ccpu2(0x00000001) |
@@ -244,10 +256,15 @@ struct rndis_keepalive_c { /* IN (optionally OUT) */ | |||
244 | RNDIS_PACKET_TYPE_ALL_MULTICAST | \ | 256 | RNDIS_PACKET_TYPE_ALL_MULTICAST | \ |
245 | RNDIS_PACKET_TYPE_PROMISCUOUS) | 257 | RNDIS_PACKET_TYPE_PROMISCUOUS) |
246 | 258 | ||
259 | /* Flags to require specific physical medium type for generic_rndis_bind() */ | ||
260 | #define FLAG_RNDIS_PHYM_NOT_WIRELESS 0x0001 | ||
261 | #define FLAG_RNDIS_PHYM_WIRELESS 0x0002 | ||
262 | |||
247 | 263 | ||
248 | extern void rndis_status(struct usbnet *dev, struct urb *urb); | 264 | extern void rndis_status(struct usbnet *dev, struct urb *urb); |
249 | extern int rndis_command(struct usbnet *dev, struct rndis_msg_hdr *buf); | 265 | extern int rndis_command(struct usbnet *dev, struct rndis_msg_hdr *buf); |
250 | extern int generic_rndis_bind(struct usbnet *dev, struct usb_interface *intf); | 266 | extern int |
267 | generic_rndis_bind(struct usbnet *dev, struct usb_interface *intf, int flags); | ||
251 | extern void rndis_unbind(struct usbnet *dev, struct usb_interface *intf); | 268 | extern void rndis_unbind(struct usbnet *dev, struct usb_interface *intf); |
252 | extern int rndis_rx_fixup(struct usbnet *dev, struct sk_buff *skb); | 269 | extern int rndis_rx_fixup(struct usbnet *dev, struct sk_buff *skb); |
253 | extern struct sk_buff * | 270 | extern struct sk_buff * |