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