LUFA Library

Data Structures

struct  MAC_Address_t
 MAC Address Structure. More...
 
struct  RNDIS_Initialize_Complete_t
 RNDIS Initialize Complete Message Structure. More...
 
struct  RNDIS_Initialize_Message_t
 RNDIS Initialization Message Structure. More...
 
struct  RNDIS_KeepAlive_Complete_t
 RNDIS Keep Alive Complete Message Structure. More...
 
struct  RNDIS_KeepAlive_Message_t
 RNDIS Keep Alive Message Structure. More...
 
struct  RNDIS_Message_Header_t
 RNDIS Common Message Header Structure. More...
 
struct  RNDIS_Packet_Message_t
 RNDIS Message Structure. More...
 
struct  RNDIS_Query_Complete_t
 RNDIS OID Property Query Complete Message Structure. More...
 
struct  RNDIS_Query_Message_t
 RNDIS OID Property Query Message Structure. More...
 
struct  RNDIS_Reset_Complete_t
 RNDIS Reset Complete Message Structure. More...
 
struct  RNDIS_Set_Complete_t
 RNDIS OID Property Set Complete Message Structure. More...
 
struct  RNDIS_Set_Message_t
 RNDIS OID Property Set Message Structure. More...
 

Macros

#define ETHERNET_FRAME_SIZE_MAX   1500
 
#define REMOTE_NDIS_VERSION_MAJOR   0x01
 
#define REMOTE_NDIS_VERSION_MINOR   0x00
 
#define RNDIS_ERROR_LOGICAL_CMD_FAILED   0x80
 

Enumerations

enum  NDIS_Hardware_Status_t {
  NDIS_HardwareStatus_Ready,
  NDIS_HardwareStatus_Initializing,
  NDIS_HardwareStatus_Reset,
  NDIS_HardwareStatus_Closing,
  NDIS_HardwareStatus_NotReady
}
 
enum  RNDIS_ClassNotifications_t { RNDIS_NOTIF_ResponseAvailable = 0x01 }
 
enum  RNDIS_ClassRequests_t {
  RNDIS_REQ_SendEncapsulatedCommand = 0x00,
  RNDIS_REQ_GetEncapsulatedResponse = 0x01
}
 
enum  RNDIS_States_t {
  RNDIS_Uninitialized = 0,
  RNDIS_Initialized = 1,
  RNDIS_Data_Initialized = 2
}
 

RNDIS Message Values

#define REMOTE_NDIS_PACKET_MSG   0x00000001UL
 
#define REMOTE_NDIS_INITIALIZE_MSG   0x00000002UL
 
#define REMOTE_NDIS_HALT_MSG   0x00000003UL
 
#define REMOTE_NDIS_QUERY_MSG   0x00000004UL
 
#define REMOTE_NDIS_SET_MSG   0x00000005UL
 
#define REMOTE_NDIS_RESET_MSG   0x00000006UL
 
#define REMOTE_NDIS_INDICATE_STATUS_MSG   0x00000007UL
 
#define REMOTE_NDIS_KEEPALIVE_MSG   0x00000008UL
 

RNDIS Response Values

#define REMOTE_NDIS_INITIALIZE_CMPLT   0x80000002UL
 
#define REMOTE_NDIS_QUERY_CMPLT   0x80000004UL
 
#define REMOTE_NDIS_SET_CMPLT   0x80000005UL
 
#define REMOTE_NDIS_RESET_CMPLT   0x80000006UL
 
#define REMOTE_NDIS_KEEPALIVE_CMPLT   0x80000008UL
 

RNDIS Status Values

#define REMOTE_NDIS_STATUS_SUCCESS   0x00000000UL
 
#define REMOTE_NDIS_STATUS_FAILURE   0xC0000001UL
 
#define REMOTE_NDIS_STATUS_INVALID_DATA   0xC0010015UL
 
#define REMOTE_NDIS_STATUS_NOT_SUPPORTED   0xC00000BBUL
 
#define REMOTE_NDIS_STATUS_MEDIA_CONNECT   0x4001000BUL
 
#define REMOTE_NDIS_STATUS_MEDIA_DISCONNECT   0x4001000CUL
 

RNDIS Media States

#define REMOTE_NDIS_MEDIA_STATE_CONNECTED   0x00000000UL
 
#define REMOTE_NDIS_MEDIA_STATE_DISCONNECTED   0x00000001UL
 

RNDIS Media Types

#define REMOTE_NDIS_MEDIUM_802_3   0x00000000UL
 

RNDIS Connection Types

#define REMOTE_NDIS_DF_CONNECTIONLESS   0x00000001UL
 
#define REMOTE_NDIS_DF_CONNECTION_ORIENTED   0x00000002UL
 

RNDIS Packet Types

#define REMOTE_NDIS_PACKET_DIRECTED   0x00000001UL
 
#define REMOTE_NDIS_PACKET_MULTICAST   0x00000002UL
 
#define REMOTE_NDIS_PACKET_ALL_MULTICAST   0x00000004UL
 
#define REMOTE_NDIS_PACKET_BROADCAST   0x00000008UL
 
#define REMOTE_NDIS_PACKET_SOURCE_ROUTING   0x00000010UL
 
#define REMOTE_NDIS_PACKET_PROMISCUOUS   0x00000020UL
 
#define REMOTE_NDIS_PACKET_SMT   0x00000040UL
 
#define REMOTE_NDIS_PACKET_ALL_LOCAL   0x00000080UL
 
#define REMOTE_NDIS_PACKET_GROUP   0x00001000UL
 
#define REMOTE_NDIS_PACKET_ALL_FUNCTIONAL   0x00002000UL
 
#define REMOTE_NDIS_PACKET_FUNCTIONAL   0x00004000UL
 
#define REMOTE_NDIS_PACKET_MAC_FRAME   0x00008000UL
 

RNDIS OID Values

#define OID_GEN_SUPPORTED_LIST   0x00010101UL
 
#define OID_GEN_HARDWARE_STATUS   0x00010102UL
 
#define OID_GEN_MEDIA_SUPPORTED   0x00010103UL
 
#define OID_GEN_MEDIA_IN_USE   0x00010104UL
 
#define OID_GEN_MAXIMUM_FRAME_SIZE   0x00010106UL
 
#define OID_GEN_MAXIMUM_TOTAL_SIZE   0x00010111UL
 
#define OID_GEN_MAXIMUM_TOTAL_SIZE   0x00010111UL
 
#define OID_GEN_LINK_SPEED   0x00010107UL
 
#define OID_GEN_TRANSMIT_BLOCK_SIZE   0x0001010AUL
 
#define OID_GEN_RECEIVE_BLOCK_SIZE   0x0001010BUL
 
#define OID_GEN_VENDOR_ID   0x0001010CUL
 
#define OID_GEN_VENDOR_DESCRIPTION   0x0001010DUL
 
#define OID_GEN_CURRENT_PACKET_FILTER   0x0001010EUL
 
#define OID_GEN_MEDIA_CONNECT_STATUS   0x00010114UL
 
#define OID_GEN_PHYSICAL_MEDIUM   0x00010202UL
 
#define OID_GEN_XMIT_OK   0x00020101UL
 
#define OID_GEN_RCV_OK   0x00020102UL
 
#define OID_GEN_XMIT_ERROR   0x00020103UL
 
#define OID_GEN_RCV_ERROR   0x00020104UL
 
#define OID_GEN_RCV_NO_BUFFER   0x00020105UL
 
#define OID_802_3_PERMANENT_ADDRESS   0x01010101UL
 
#define OID_802_3_CURRENT_ADDRESS   0x01010102UL
 
#define OID_802_3_MULTICAST_LIST   0x01010103UL
 
#define OID_802_3_MAXIMUM_LIST_SIZE   0x01010104UL
 
#define OID_802_3_RCV_ERROR_ALIGNMENT   0x01020101UL
 
#define OID_802_3_XMIT_ONE_COLLISION   0x01020102UL
 
#define OID_802_3_XMIT_MORE_COLLISIONS   0x01020103UL
 

Detailed Description

Module Description

Constants, Types and Enum definitions that are common to both Device and Host modes for the USB RNDIS Class.

Macro Definition Documentation

◆ ETHERNET_FRAME_SIZE_MAX

#define ETHERNET_FRAME_SIZE_MAX   1500

Maximum size in bytes of an Ethernet frame according to the Ethernet standard.

◆ OID_802_3_CURRENT_ADDRESS

#define OID_802_3_CURRENT_ADDRESS   0x01010102UL

◆ OID_802_3_MAXIMUM_LIST_SIZE

#define OID_802_3_MAXIMUM_LIST_SIZE   0x01010104UL

◆ OID_802_3_MULTICAST_LIST

#define OID_802_3_MULTICAST_LIST   0x01010103UL

◆ OID_802_3_PERMANENT_ADDRESS

#define OID_802_3_PERMANENT_ADDRESS   0x01010101UL

◆ OID_802_3_RCV_ERROR_ALIGNMENT

#define OID_802_3_RCV_ERROR_ALIGNMENT   0x01020101UL

◆ OID_802_3_XMIT_MORE_COLLISIONS

#define OID_802_3_XMIT_MORE_COLLISIONS   0x01020103UL

◆ OID_802_3_XMIT_ONE_COLLISION

#define OID_802_3_XMIT_ONE_COLLISION   0x01020102UL

◆ OID_GEN_CURRENT_PACKET_FILTER

#define OID_GEN_CURRENT_PACKET_FILTER   0x0001010EUL

◆ OID_GEN_HARDWARE_STATUS

#define OID_GEN_HARDWARE_STATUS   0x00010102UL

◆ OID_GEN_LINK_SPEED

#define OID_GEN_LINK_SPEED   0x00010107UL

◆ OID_GEN_MAXIMUM_FRAME_SIZE

#define OID_GEN_MAXIMUM_FRAME_SIZE   0x00010106UL

◆ OID_GEN_MAXIMUM_TOTAL_SIZE [1/2]

#define OID_GEN_MAXIMUM_TOTAL_SIZE   0x00010111UL

◆ OID_GEN_MAXIMUM_TOTAL_SIZE [2/2]

#define OID_GEN_MAXIMUM_TOTAL_SIZE   0x00010111UL

◆ OID_GEN_MEDIA_CONNECT_STATUS

#define OID_GEN_MEDIA_CONNECT_STATUS   0x00010114UL

◆ OID_GEN_MEDIA_IN_USE

#define OID_GEN_MEDIA_IN_USE   0x00010104UL

◆ OID_GEN_MEDIA_SUPPORTED

#define OID_GEN_MEDIA_SUPPORTED   0x00010103UL

◆ OID_GEN_PHYSICAL_MEDIUM

#define OID_GEN_PHYSICAL_MEDIUM   0x00010202UL

◆ OID_GEN_RCV_ERROR

#define OID_GEN_RCV_ERROR   0x00020104UL

◆ OID_GEN_RCV_NO_BUFFER

#define OID_GEN_RCV_NO_BUFFER   0x00020105UL

◆ OID_GEN_RCV_OK

#define OID_GEN_RCV_OK   0x00020102UL

◆ OID_GEN_RECEIVE_BLOCK_SIZE

#define OID_GEN_RECEIVE_BLOCK_SIZE   0x0001010BUL

◆ OID_GEN_SUPPORTED_LIST

#define OID_GEN_SUPPORTED_LIST   0x00010101UL

◆ OID_GEN_TRANSMIT_BLOCK_SIZE

#define OID_GEN_TRANSMIT_BLOCK_SIZE   0x0001010AUL

◆ OID_GEN_VENDOR_DESCRIPTION

#define OID_GEN_VENDOR_DESCRIPTION   0x0001010DUL

◆ OID_GEN_VENDOR_ID

#define OID_GEN_VENDOR_ID   0x0001010CUL

◆ OID_GEN_XMIT_ERROR

#define OID_GEN_XMIT_ERROR   0x00020103UL

◆ OID_GEN_XMIT_OK

#define OID_GEN_XMIT_OK   0x00020101UL

◆ REMOTE_NDIS_DF_CONNECTION_ORIENTED

#define REMOTE_NDIS_DF_CONNECTION_ORIENTED   0x00000002UL

◆ REMOTE_NDIS_DF_CONNECTIONLESS

#define REMOTE_NDIS_DF_CONNECTIONLESS   0x00000001UL

◆ REMOTE_NDIS_HALT_MSG

#define REMOTE_NDIS_HALT_MSG   0x00000003UL

◆ REMOTE_NDIS_INDICATE_STATUS_MSG

#define REMOTE_NDIS_INDICATE_STATUS_MSG   0x00000007UL

◆ REMOTE_NDIS_INITIALIZE_CMPLT

#define REMOTE_NDIS_INITIALIZE_CMPLT   0x80000002UL

◆ REMOTE_NDIS_INITIALIZE_MSG

#define REMOTE_NDIS_INITIALIZE_MSG   0x00000002UL

◆ REMOTE_NDIS_KEEPALIVE_CMPLT

#define REMOTE_NDIS_KEEPALIVE_CMPLT   0x80000008UL

◆ REMOTE_NDIS_KEEPALIVE_MSG

#define REMOTE_NDIS_KEEPALIVE_MSG   0x00000008UL

◆ REMOTE_NDIS_MEDIA_STATE_CONNECTED

#define REMOTE_NDIS_MEDIA_STATE_CONNECTED   0x00000000UL

◆ REMOTE_NDIS_MEDIA_STATE_DISCONNECTED

#define REMOTE_NDIS_MEDIA_STATE_DISCONNECTED   0x00000001UL

◆ REMOTE_NDIS_MEDIUM_802_3

#define REMOTE_NDIS_MEDIUM_802_3   0x00000000UL

◆ REMOTE_NDIS_PACKET_ALL_FUNCTIONAL

#define REMOTE_NDIS_PACKET_ALL_FUNCTIONAL   0x00002000UL

◆ REMOTE_NDIS_PACKET_ALL_LOCAL

#define REMOTE_NDIS_PACKET_ALL_LOCAL   0x00000080UL

◆ REMOTE_NDIS_PACKET_ALL_MULTICAST

#define REMOTE_NDIS_PACKET_ALL_MULTICAST   0x00000004UL

◆ REMOTE_NDIS_PACKET_BROADCAST

#define REMOTE_NDIS_PACKET_BROADCAST   0x00000008UL

◆ REMOTE_NDIS_PACKET_DIRECTED

#define REMOTE_NDIS_PACKET_DIRECTED   0x00000001UL

◆ REMOTE_NDIS_PACKET_FUNCTIONAL

#define REMOTE_NDIS_PACKET_FUNCTIONAL   0x00004000UL

◆ REMOTE_NDIS_PACKET_GROUP

#define REMOTE_NDIS_PACKET_GROUP   0x00001000UL

◆ REMOTE_NDIS_PACKET_MAC_FRAME

#define REMOTE_NDIS_PACKET_MAC_FRAME   0x00008000UL

◆ REMOTE_NDIS_PACKET_MSG

#define REMOTE_NDIS_PACKET_MSG   0x00000001UL

◆ REMOTE_NDIS_PACKET_MULTICAST

#define REMOTE_NDIS_PACKET_MULTICAST   0x00000002UL

◆ REMOTE_NDIS_PACKET_PROMISCUOUS

#define REMOTE_NDIS_PACKET_PROMISCUOUS   0x00000020UL

◆ REMOTE_NDIS_PACKET_SMT

#define REMOTE_NDIS_PACKET_SMT   0x00000040UL

◆ REMOTE_NDIS_PACKET_SOURCE_ROUTING

#define REMOTE_NDIS_PACKET_SOURCE_ROUTING   0x00000010UL

◆ REMOTE_NDIS_QUERY_CMPLT

#define REMOTE_NDIS_QUERY_CMPLT   0x80000004UL

◆ REMOTE_NDIS_QUERY_MSG

#define REMOTE_NDIS_QUERY_MSG   0x00000004UL

◆ REMOTE_NDIS_RESET_CMPLT

#define REMOTE_NDIS_RESET_CMPLT   0x80000006UL

◆ REMOTE_NDIS_RESET_MSG

#define REMOTE_NDIS_RESET_MSG   0x00000006UL

◆ REMOTE_NDIS_SET_CMPLT

#define REMOTE_NDIS_SET_CMPLT   0x80000005UL

◆ REMOTE_NDIS_SET_MSG

#define REMOTE_NDIS_SET_MSG   0x00000005UL

◆ REMOTE_NDIS_STATUS_FAILURE

#define REMOTE_NDIS_STATUS_FAILURE   0xC0000001UL

◆ REMOTE_NDIS_STATUS_INVALID_DATA

#define REMOTE_NDIS_STATUS_INVALID_DATA   0xC0010015UL

◆ REMOTE_NDIS_STATUS_MEDIA_CONNECT

#define REMOTE_NDIS_STATUS_MEDIA_CONNECT   0x4001000BUL

◆ REMOTE_NDIS_STATUS_MEDIA_DISCONNECT

#define REMOTE_NDIS_STATUS_MEDIA_DISCONNECT   0x4001000CUL

◆ REMOTE_NDIS_STATUS_NOT_SUPPORTED

#define REMOTE_NDIS_STATUS_NOT_SUPPORTED   0xC00000BBUL

◆ REMOTE_NDIS_STATUS_SUCCESS

#define REMOTE_NDIS_STATUS_SUCCESS   0x00000000UL

◆ REMOTE_NDIS_VERSION_MAJOR

#define REMOTE_NDIS_VERSION_MAJOR   0x01

Implemented RNDIS Version Major.

◆ REMOTE_NDIS_VERSION_MINOR

#define REMOTE_NDIS_VERSION_MINOR   0x00

Implemented RNDIS Version Minor.

◆ RNDIS_ERROR_LOGICAL_CMD_FAILED

#define RNDIS_ERROR_LOGICAL_CMD_FAILED   0x80

Additional error code for RNDIS functions when a device returns a logical command failure.

Enumeration Type Documentation

◆ NDIS_Hardware_Status_t

Enum for the NDIS hardware states.

Enumerator
NDIS_HardwareStatus_Ready 

Hardware Ready to accept commands from the host.

NDIS_HardwareStatus_Initializing 

Hardware busy initializing.

NDIS_HardwareStatus_Reset 

Hardware reset.

NDIS_HardwareStatus_Closing 

Hardware currently closing.

NDIS_HardwareStatus_NotReady 

Hardware not ready to accept commands from the host.

◆ RNDIS_ClassNotifications_t

Enum for the RNDIS class specific notification requests that can be issued by a RNDIS device to a host.

Enumerator
RNDIS_NOTIF_ResponseAvailable 

Notification request value for a RNDIS Response Available notification.

◆ RNDIS_ClassRequests_t

Enum for the RNDIS class specific control requests that can be issued by the USB bus host.

Enumerator
RNDIS_REQ_SendEncapsulatedCommand 

RNDIS request to issue a host-to-device NDIS command.

RNDIS_REQ_GetEncapsulatedResponse 

RNDIS request to issue a device-to-host NDIS response.

◆ RNDIS_States_t

Enum for the possible NDIS adapter states.

Enumerator
RNDIS_Uninitialized 

Adapter currently uninitialized.

RNDIS_Initialized 

Adapter currently initialized but not ready for data transfers.

RNDIS_Data_Initialized 

Adapter currently initialized and ready for data transfers.