VxWorks网络设备的加载及协议栈初始化.docx

VxWorks网络设备的加载及协议栈初始化.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VxWorks网络设备的加载及协议栈初始化

一.MUX中间层 为了能够兼容更多的网络设备和网络协议,VxWorks操作系统专门在网络设备驱动程序和网络协议层之间增加了MUX接口层。网络设备驱动程序不关心用户通过何种网络协议访问设备,只需要将数据传递给MUX层,或者从MUX层获取需要发送的数据;同样,协议层中的协议也不需要关心用户使用何种网络设备,将数据发送给MUX层或者从MUX层读取数据即可。 MUX层位于数据链路层和网络协议层之间,它提供协议和设备的衔接,管理着网络协议接口和底层设备驱动之间的通信。 MUX层的加入有效隔离了网络设备驱动程序和协议层协议, MUX层的统一标准接口屏蔽了底层网络设备的差异性和上层网络组件的特殊性,降低了网络设备的增加和网络组件的扩展的复杂度。二.END NPT MUX层支持两种网络设备驱动程序:END(Enhanced Network Driver)和NPT(Network Protocol Toolkit)。 这两种网络设备驱动程序的大体结构相似,与MUX接口也几乎相同,MUX装载两者的方式也相同。不同的是,END模型基于帧(frame)传递数据,NPT模型基于包(packet)传递数据。在这里,帧和包的区别在于,帧包含了网络传输的全部数据,也就是数据包和MAC地址等链路层数据;而包仅仅包括数据包,不包括链路层信息。 NPT驱动程序模型可以看作是对END模型的一个扩展。END模型是VxWorks推荐的实现方式。三.END网络设备相关数据结构1.struct END_OBJ 网络设备驱动程序的接口数据结构是END_OBJ,如下所示。/* endObject - the basic end object that everyone derives from */typedef struct end_object{ NODEnode; /*...*/ DEV_OBJdevObject;????????????? /*Root of the device heirarchy*/ STATUS (*receiveRtn)();???????? /*MUX routine to call on reception*/? structproto_entry* pSnarf;???? /*First snarf protocol*/ structproto_entry* pTyped;???? /*First typed protocol*/ structproto_entry* pPromisc;?? /*First promiscuous protocol*/ structproto_entry* pStop;????? /*End of protocols*/ UINT32nProtoSlots;???????????? /*Number of slots in protocol table*/? intendStyle;?????????????? /*END, NPT, MULTI, ...*/ BOOLattached;????????????????? /*Indicates unit is attached*/? SEM_IDtxSem;?????????????? /*Transmitter semaphore.*/ longflags;???????????????????? /*various flags.*/ structnet_funcs* pFuncTable;?? /*Function talbe.*/ M2_INTERFACETBLmib2Tbl;??? /*MIB II counters.*/ LISTmultiList;???????????????? /*Head of the multicast address list*/ intnMulti;???????????????????? /*Number of elements?in the list*/ structprotocol_binding* outputFilter; /*Optional output filter*/ NET_POOL_IDpNetPool;?????????? /*Memorycookie used by MUX buffering*/ M2_ID*pMib2Tbl;??????????? /*RFC 2233 MIB objects*/ structend_object* dummyBinding; /*dummy protocolbinding*/}END_OBJ; 结构中的NODE节点用于链化所有的网络设备;DEV_OBJ数据机构用于描述设备,包括名称、描述、设备索引以及指向设备数据结构的指针等信息;结构net_proto

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档