1 onps栈使用说明——API接口手册( 二 )


  • pstNetif:指向网卡控制块ST_NETIF的指针,指定要删除哪个网卡的所有路由条目
返回值

示例

返回目录
route_get_default功能
获取缺省路由信息 。
原型
PST_NETIF route_get_default(void);
入口参数

返回值
返回缺省路由绑定的网卡控制块首地址 。
示例

返回目录
dhcp_req_addr功能
启动dhcp客户端,向dhcp服务器请求租用一个动态地址 。
原型
BOOL dhcp_req_addr(PST_NETIF pstNetif, EN_ONPSERR *penErr);
入口参数
  • pstNetif:指定要进行dhcp请求的网卡
  • penErr:指向错误编码的指针,当函数执行失败,该参数用于接收实际的错误码
返回值
请求成功则返回TRUE,否则返回FALSE,具体的错误信息参见参数penErr返回的错误码 。
示例
参见上一篇博文《onps栈移植说明(3)——添加网卡》 。
返回目录
ethernet_add功能
增加新的ethernet网卡到协议栈 。
原型
PST_NETIF ethernet_add(const CHAR *pszIfName,
const UCHAR ubaMacAddr[ETH_MAC_ADDR_LEN],
PST_IPV4 pstIPv4,
PFUN_EMAC_SEND pfunEmacSend,
void (*pfunStartTHEmacRecv)(void *pvParam),
PST_NETIF *ppstNetif,
EN_ONPSERR *penErr);
入口参数
  • pszIfName:网卡名称
  • ubaMacAddr:网卡 mac 地址
  • pstIPv4:指向 ST_IPV4 结构体的指针(include/netif/netif.h),这个结构体保存用户指定的 ip地址、网关、dns、子网掩码等配置信息
  • pfunEmacSend:函数指针,指向发送函数,函数原型为 INT(* PFUN_EMAC_SEND)(SHORT sBufListHead, UCHAR *pubErr),这个指针指向的其实就是网卡发送函数
  • pfunStartTHEmacRecv:指向线程启动函数的指针,协议栈使用该指针指向的函数启动协议栈内部工作线程——ethernet网卡接收线程
  • ppstNetif:二维指针,协议栈成功注册网卡后 ethernet_add()函数会返回一个 PST_NETIF 指针给调用者,这个参数指向这个指针,其最终会被协议栈通过 pvParam 参数传递给 pfunStartTHEmacRecv 指向的函数
  • penErr:指向错误编码的指针,当函数执行失败,该参数用于接收实际的错误码
返回值
注册成功,返回一个 PST_NETIF 类型的指针,该指针指向新添加的网卡控制块,唯一的标识新添加的这块网卡;注册失败则返回 NULL,具体错误信息参见 penErr参数携带的错误码 。
示例
参见上一篇博文《onps栈移植说明(3)——添加网卡》 。
返回目录
ethernet_del功能
删除ethernet网卡 。
原型
void ethernet_del(PST_NETIF *ppstNetif);
入口参数
  • ppstNetif:指向网卡控制块PST_NETIF指针的指针,其指向ethernet_add()函数返回的PST_NETIF指针的首地址
返回值

示例

返回目录
ethernet_put_packet功能
将收到的ethernet报文推送给协议栈 。
原型
void ethernet_put_packet(PST_NETIF pstNetif, PST_SLINKEDLIST_NODE pstNode);
入口参数
  • pstNetif:指向网卡控制块ST_NETIF的指针
  • pstNode:指向协议栈ethernet网卡接收链表节点的指针
返回值

示例
参见上一篇博文《onps栈移植说明(3)——添加网卡》 。
返回目录
netif_is_ready功能
检查网卡是否已进入或正处于正常工作状态 。
原型
BOOL netif_is_ready(const CHAR *pszIfName);
入口参数
  • pszIfName:指向网卡名称的指针
返回值
返回TRUE,网卡已就绪;反之则返回FALSE 。
示例

返回目录
netif_get_by_name功能
通过网卡名称查找网卡 。

经验总结扩展阅读