LwIP的SNMP学习笔记

这篇博客主要记录了LwIP中SNMP的学习笔记,包括SNMP在LwIP源码目录的位置,snmp_init()初始化过程,以及snmp_recv()如何处理UDP包和snmp_pdu_header_check()头部检查功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于这方面的资料网上非常少,做一下笔记。

在LwIP中,在\lwip-1.4.1\src\core\snmp目录下有SNMP相关的c文件,
在lwip-1.4.1\src\include\lwip目录下有SNMP相关的h文件,
在\lwip-1.4.1\doc目录下有一个snmp代理的说明,这是LwIP最直接的说明文档:

 snmp_init(void)中会设置UDP接收的回调函数,这样,所有发往本机161端口的udp包都会由snmp_recv处理

/**
 * Starts SNMP Agent.
 * Allocates UDP pcb and binds it to IP_ADDR_ANY port 161.
 */
void
snmp_init(void)
{
  struct snmp_msg_pstat *msg_ps;
  u8_t i;

  snmp1_pcb = udp_new();
  if (snmp1_pcb != NULL)
  {
    udp_recv(snmp1_pcb, snmp_recv, (void *)SNMP_IN_PORT);
    udp_bind(snmp1_pcb, IP_ADDR_ANY, SNMP_IN_PORT);
  }

snmp_recv函数中会调用snmp_pdu_header_check函数,检查SNMP PDU的头部是否正确

/* lwIP UDP receive callback function */
static void
snmp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, ip_addr_t *addr, u16_t port)
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值