32 #define TRACE_LEVEL ETH_TRACE_LEVEL
49 #if (ETH_SUPPORT == ENABLED)
54 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
55 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
56 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
57 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
58 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
59 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
60 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
61 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
65 #if (ETH_FAST_CRC_SUPPORT == ENABLED)
67 static const uint32_t crc32Table[256] =
69 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,
70 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
71 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,
72 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,
73 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,
74 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,
75 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,
76 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,
77 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,
78 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,
79 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,
80 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,
81 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,
82 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,
83 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,
84 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,
85 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,
86 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,
87 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,
88 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,
89 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,
90 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,
91 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,
92 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,
93 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,
94 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,
95 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,
96 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,
97 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,
98 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,
99 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,
100 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,
101 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,
102 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,
103 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,
104 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,
105 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,
106 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,
107 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,
108 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,
109 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,
110 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,
111 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,
112 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,
113 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,
114 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,
115 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,
116 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,
117 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,
118 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,
119 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,
120 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,
121 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,
122 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,
123 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,
124 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,
125 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,
126 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,
127 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,
128 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
129 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,
130 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,
131 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,
132 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D
189 int8_t vlanPcp, int8_t vlanDei, uint16_t
type)
221 vlanTag->tci =
htons(vlanId);
291 if(
macCompAddr(macAddr, &logicalInterface->macAddr))
303 #if (IPV4_SUPPORT == ENABLED && IGMP_ROUTER_SUPPORT == ENABLED)
305 if(interface->igmpRouterContext != NULL &&
306 interface->igmpRouterContext->running)
317 entry = &interface->macAddrFilter[i];
356 #if (IPV4_SUPPORT == ENABLED)
489 #if (ETH_FAST_CRC_SUPPORT == ENABLED)
493 const uint8_t *
p = (uint8_t *)
data;
495 uint32_t crc = 0xFFFFFFFF;
498 for(i = 0; i <
length; i++)
501 crc = (crc >> 8) ^ crc32Table[(crc & 0xFF) ^
p[i]];
513 const uint8_t *
p = (uint8_t *)
data;
515 uint32_t crc = 0xFFFFFFFF;
518 for(i = 0; i <
length; i++)
524 for(j = 0; j < 8; j++)
528 crc = (crc >> 1) ^ 0xEDB88320;
557 #if (ETH_FAST_CRC_SUPPORT == DISABLED)
568 if(offset < buffer->chunk[i].
length)
580 #if (ETH_FAST_CRC_SUPPORT == ENABLED)
582 crc = (crc >> 8) ^ crc32Table[(crc & 0xFF) ^ *
p];
588 for(k = 0; k < 8; k++)
592 crc = (crc >> 1) ^ 0xEDB88320;
639 if(!interface->nicDriver->autoCrcVerif)