12#ifndef __NCM_PROTOCOL_H
13#define __NCM_PROTOCOL_H
20#define NCM_SET_ETHERNET_MULTICAST_FILTERS (0x40)
21#define NCM_SET_ETHERNET_PM_PATTERN_FILTER (0x41)
22#define NCM_GET_ETHERNET_PM_PATTERN_FILTER (0x42)
23#define NCM_SET_ETHERNET_PACKET_FILTER (0x43)
24#define NCM_GET_ETHERNET_STATISTIC (0x44)
25#define NCM_GET_NTB_PARAMETERS (0x80)
26#define NCM_GET_NET_ADDRESS (0x81)
27#define NCM_SET_NET_ADDRESS (0x82)
28#define NCM_GET_NTB_FORMAT (0x83)
29#define NCM_SET_NTB_FORMAT (0x84)
30#define NCM_GET_NTB_INPUT_SIZE (0x85)
31#define NCM_SET_NTB_INPUT_SIZE (0x86)
32#define NCM_GET_MAX_DATAGRAM_SIZE (0x87)
33#define NCM_SET_MAX_DATAGRAM_SIZE (0x88)
34#define NCM_GET_CRC_MODE (0x89)
35#define NCM_SET_CRC_MODE (0x8A)
40#define NCM_NOTIFICATION_NETWORK_CONNECTION (0x00)
41#define NCM_NOTIFICATION_RESPONSE_AVAILABLE (0x01)
42#define NCM_NOTIFICATION_CONNECTION_SPEED_CHANGE (0x2A)
47#define NCM_NTH16_SIGNATURE (0x484D434E)
48#define NCM_NTH32_SIGNATURE (0x686D636E)
49#define NCM_NDP16_SIGNATURE_NCM0 (0x304D434E)
50#define NCM_NDP16_SIGNATURE_NCM1 (0x314D434E)
51#define NCM_NDP32_SIGNATURE_NCM0 (0x306D636E)
52#define NCM_NDP32_SIGNATURE_NCM1 (0x316D636E)
57#define NCM_MAX_SEGMENT_SIZE (1514)
58#define NCM_MAX_DATAGRAM_SIZE (1514)
59#define NCM_MIN_NTB_SIZE (2048)
60#define NCM_MAX_NTB_SIZE (2048)
61#define NCM_NTB_ALIGNMENT (4)
62#define NCM_NDP_ALIGNMENT (4)
63#define NCM_DATAGRAM_ALIGNMENT (4)
66#define NCM_NTH16_SIZE (12)
69#define NCM_NDP16_HEADER_SIZE (8)
72#define NCM_NDP16_ENTRY_SIZE (4)
75#define NCM_ETHER_ADDR_SIZE (6)
76#define NCM_ETHER_MAX_FRAME_SIZE (1514)
77#define NCM_ETHER_MTU (1500)
82#define NCM_NTB_FORMAT_NTB16 (0x0000)
83#define NCM_NTB_FORMAT_NTB32 (0x0001)
88#define NCM_NCAP_PACKET_FILTER (1 << 0)
89#define NCM_NCAP_NET_ADDRESS (1 << 1)
90#define NCM_NCAP_ENCAP_COMMAND (1 << 2)
91#define NCM_NCAP_MAX_DATAGRAM (1 << 3)
92#define NCM_NCAP_CRC_MODE (1 << 4)
93#define NCM_NCAP_NTB_INPUT_SIZE_8BYTE (1 << 5)
98#define NCM_PACKET_TYPE_PROMISCUOUS (1 << 0)
99#define NCM_PACKET_TYPE_ALL_MULTICAST (1 << 1)
100#define NCM_PACKET_TYPE_DIRECTED (1 << 2)
101#define NCM_PACKET_TYPE_BROADCAST (1 << 3)
102#define NCM_PACKET_TYPE_MULTICAST (1 << 4)
118 uint16_t bmNtbFormatsSupported;
119 uint32_t dwNtbInMaxSize;
120 uint16_t wNdpInDivisor;
121 uint16_t wNdpInPayloadRemainder;
122 uint16_t wNdpInAlignment;
124 uint32_t dwNtbOutMaxSize;
125 uint16_t wNdpOutDivisor;
126 uint16_t wNdpOutPayloadRemainder;
127 uint16_t wNdpOutAlignment;
128 uint16_t wNtbOutMaxDatagrams;
138 uint32_t dwSignature;
139 uint16_t wHeaderLength;
141 uint16_t wBlockLength;
152 uint16_t wDatagramIndex;
153 uint16_t wDatagramLength;
163 uint32_t dwSignature;
165 uint16_t wNextNdpIndex;
173 uint8_t bmRequestType;
174 uint8_t bNotificationCode;
184 uint8_t bmRequestType;
185 uint8_t bNotificationCode;
197 uint32_t dwNtbInMaxSize;
198 uint16_t wNtbInMaxDatagrams;
208 NCM_STATE_DISCONNECTED = 0,
209 NCM_STATE_CONFIGURED,
NCM NDP16 Datagram Entry.
Definition src/ncm_protocol.h:151
NCM NDP16 - 16-bit NCM Datagram Pointer.
Definition src/ncm_protocol.h:162
NCM Network Connection Notification.
Definition src/ncm_protocol.h:172
NCM Connection Speed Change Notification.
Definition src/ncm_protocol.h:183
NCM NTB Parameters Structure.
Definition src/ncm_protocol.h:116
NCM NTH16 - 16-bit NCM Transfer Header.
Definition src/ncm_protocol.h:137