2 MUX接口工作流程分析

MUX层作为独立的一个网络层有其自己的功能函数,但这些功能函数只是其上下两层通信的接口.网络协议层和网络驱动与MUX接口的调用关系如图3所示.

网络协议层 MUX 网络驱动

网络协议栈的协议提供下面的接口功能函数:

①stackShutdownRtn()

②stackError()

③stackRcvRtn()

④stackTxRestartRtn()

当MUX接口层需要与协议层相互通信时,就调用以上的功能函数.想要使网络协议层能够使用MUX,必须至少实现以上四个功能函数.

MUX则实现muxBind()、muxUnBind)、muxDevload()等等.网络协议层和网络驱动接口都要根据各自的需要使用MUX接入点.由于MUX是由系统提供的,不需要在应用时再进行额外的编码工作;只要在使用时,填入正确的参数即可.

例如在VxWorks中,muxDevLoad是这样定义的:

  1. END_OBJ*muxDevLoad  
  2.  
  3. int unit,  
  4. END_OBJ**endLoad)(char*,void*),  
  5. char* pInitString,  
  6. BOOL loaning,  
  7. void* pBSP  
  8. ) 

网络协议栈MUX中的其它功能函数在muxLib.h文件中有详细定义.

网络接口的驱动程序要完成endLoad()、endUnload()、endSend()等功能函数.MUX使用这些功能函数来与网络驱动程序通信.当 编写或加载一个使用MUX的网络驱动程序时,必须实现图3中END的所有功能.这些功能函数都是针对具体的网络接口,即每一个网络驱动程序中都要有这些功 能函数.


相关内容

    暂无相关文章