21#define RNDIS_MAX_WAIT_MS 1000
32#define RNDIS_INITIALISE_MSG 0x00000002UL
50#define RNDIS_INIT_ID 0xe110e110UL
53#define RNDIS_VERSION_MAJOR 1
56#define RNDIS_VERSION_MINOR 0
65#define RNDIS_INITIALISE_CMPLT 0x80000002UL
92#define RNDIS_HALT_MSG 0x00000003UL
101#define RNDIS_QUERY_MSG 0x00000004UL
104#define RNDIS_SET_MSG 0x00000005UL
121#define RNDIS_QUERY_CMPLT 0x80000004UL
136#define RNDIS_SET_CMPLT 0x80000005UL
147#define RNDIS_RESET_MSG 0x00000006UL
156#define RNDIS_RESET_CMPLT 0x80000006UL
167#define RNDIS_INDICATE_STATUS_MSG 0x00000007UL
200#define RNDIS_KEEPALIVE_MSG 0x00000008UL
209#define RNDIS_KEEPALIVE_CMPLT 0x80000008UL
220#define RNDIS_PACKET_MSG 0x00000001UL
255#define RNDIS_OID_GEN_CURRENT_PACKET_FILTER 0x0001010eUL
272#define RNDIS_OID_GEN_MEDIA_CONNECT_STATUS 0x00010114UL
275#define RNDIS_OID_802_3_PERMANENT_ADDRESS 0x01010101UL
278#define RNDIS_OID_802_3_CURRENT_ADDRESS 0x01010102UL
struct arbelprm_rc_send_wqe rc
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Network device management.
static uint16_t struct vmbus_xfer_pages_operations * op
rndis_packet_filter
Packet filter bits.
@ RNDIS_FILTER_MULTICAST
Multicast packets.
@ RNDIS_FILTER_PROMISCUOUS
All packets.
@ RNDIS_FILTER_BROADCAST
Broadcast packets.
@ RNDIS_FILTER_ALL_MULTICAST
All multicast packets.
@ RNDIS_FILTER_UNICAST
Unicast packets.
int rndis_tx_defer(struct rndis_device *rndis, struct io_buffer *iobuf)
Defer transmitted packet.
int register_rndis(struct rndis_device *rndis)
Register RNDIS device.
void unregister_rndis(struct rndis_device *rndis)
Unregister RNDIS device.
void rndis_rx(struct rndis_device *rndis, struct io_buffer *iobuf)
Receive packet from underlying transport layer.
void rndis_tx_complete_err(struct rndis_device *rndis, struct io_buffer *iobuf, int rc)
Complete message transmission.
void free_rndis(struct rndis_device *rndis)
Free RNDIS device.
rndis_status
RNDIS status codes.
@ RNDIS_STATUS_WTF_WORLD
Unknown start-of-day status code.
@ RNDIS_STATUS_MEDIA_DISCONNECT
Device is disconnected from the medium.
@ RNDIS_STATUS_MEDIA_CONNECT
Device is connected to a network medium.
void rndis_rx_err(struct rndis_device *rndis, struct io_buffer *iobuf, int rc)
Discard packet from underlying transport layer.
static void rndis_tx_complete(struct rndis_device *rndis, struct io_buffer *iobuf)
Complete message transmission.
struct rndis_device * alloc_rndis(size_t priv_len)
Allocate RNDIS device.
static void rndis_init(struct rndis_device *rndis, struct rndis_operations *op)
Initialise an RNDIS device.
struct net_device * netdev
Network device.
struct rndis_operations * op
RNDIS operations.
const char * name
Device name.
int wait_rc
Return status code for current blocking request.
void * priv
Driver private data.
unsigned int wait_id
Request ID for current blocking request.
RNDIS diagnostic information.
uint32_t offset
Error offset.
RNDIS indicate status message.
struct rndis_diagnostic_info diag[0]
Diagnostic information (optional)
uint32_t len
Status buffer length.
uint32_t offset
Status buffer offset.
RNDIS initialise completion.
uint32_t align
Packet alignment factor.
uint32_t reserved[2]
Reserved.
uint32_t minor
Minor version.
uint32_t mtu
Maximum transfer size.
uint32_t flags
Device flags.
uint32_t major
Major version.
uint32_t max_pkts
Maximum packets per transfer.
RNDIS initialise message.
uint32_t minor
Minor version.
uint32_t mtu
Maximum transfer size.
uint32_t major
Major version.
RNDIS keepalive completion.
RNDIS query or set OID message.
uint32_t reserved
Reserved.
uint32_t len
Information buffer length.
uint32_t offset
Information buffer offset.
int(* open)(struct rndis_device *rndis)
Open RNDIS device.
void(* poll)(struct rndis_device *rndis)
Poll for completed and received packets.
void(* close)(struct rndis_device *rndis)
Close RNDIS device.
int(* transmit)(struct rndis_device *rndis, struct io_buffer *iobuf)
Transmit packet.
uint32_t oob_count
Number of out-of-band data records.
struct rndis_packet_field ppi
Per-packet information record.
uint32_t reserved[2]
Reserved.
struct rndis_packet_field oob
Out-of-band data records.
struct rndis_packet_field data
Data.
RNDIS query OID completion.
uint32_t offset
Information buffer offset.
uint32_t len
Information buffer length.
uint32_t addr
Addressing reset.
uint32_t reserved
Reserved.
RNDIS set OID completion.