请问:wifi接收数据的有关问题

请教:wifi接收数据的问题
目前在看marvell 8686 wifi的驱动代码,在接收数据的时候不太明白,代码如下

C/C++ code

case IF_DATA_PKT:
               //051107 Coverity chagne to mainstream //060407
               if( pRxBufVM != NULL)
               {  
                 if((*((UCHAR *)((ULONG)pRxBufVM + 14)) == 0xaa ) &&  
                              (*((UCHAR *)((ULONG)pRxBufVM + 15)) == 0xaa ) &&
                              (*((UCHAR *)((ULONG)pRxBufVM + 16)) == 0x03 ) &&
                              (*((UCHAR *)((ULONG)pRxBufVM + 20)) == 0x88 ) )
                      {
                            if ( (*((UCHAR *)((ULONG)pRxBufVM + 21)) == 0x8e ) ||
                                  (*((UCHAR *)((ULONG)pRxBufVM + 21)) == 0xc7 ) )   // fix pre-auth
                            {
                                usLength -= 8;
                                NdisMoveMemory((PUCHAR)((ULONG)pRxBufVM + 12),(PUCHAR)((ULONG)pRxBufVM + 20), (usLength-20));   
                            }
                      }
               }




目前看代码可以看出,底层固件是不是把802.11帧转化为了802.3 SNAP帧,所以才会判断是不是0xAA,0x03。。。
我不明白的是oxAA,AA,03后面的,为什么是0x88,根据tcpip详解,偏移20字节的是类型域,里面只有ip(0800),arp(0806)和rarp(8305)的,没有个内容是0x88的。这是什么意思呢?

还有就是偏移21个字节,判断是不是0x8e或0xC7,这又是什么意思?

说的不太清楚,请高手指点。


另外,感觉wifi小端口传到协议层中的数据包,就是一个14字节的802.3MAC域+38~1492的数据域和CRC域。不知道是不是这样的、、、??

------解决方案--------------------
这个芯片没有用过,估计前面是去掉了部分头部字段的,正常应该是偏移30个字节才是SNAP头部

------解决方案--------------------
看样子确实有点像转换成802.3MAC的了
刚刚去IANA查了一下没有找到888e的类型
880B PPP [IANA] 
8847 MPLS [RFC5332]
8848 MPLS with upstream-assigned label [RFC5332]
8A96-8A97 Invisible Software [XEROX]
 34915 8863 - - PPPoE Discovery Stage [RFC2516]
 34916 8864 - - PPPoE Session Stage [RFC2516]