问题来源:三层交换机开发
需求:在zebra中支持snmp功能时不须要snmpd.conf配置文件
问题解决:
在net-snmp中将解析配置文件的函数找到。
如解析trap的函数:
snmpd_parse_config_trapsink(“trapsink”, “ip”);
snmpd_parse_config_trapsink2(“trapsink2”, “ip”);
解析函数在net-snmp中的smux.c中。
若是须要snmp启动时与别的模块通讯,则需将解析通讯的函数放在zebra各个模块的main函数或初始化函数中调用。通讯的函数以下:
if(smux_peer_oid2(".1.3.6.1.4.1.3317.1.2.7", NULL) == 0)
{
smux_start(); } 该函数在smux.c中定义。 其余配置能够用命令行动态配置,动态解析,包括trap的配置。 问题:ColdStart的trap的解析放在什么地方,也没有snmpd.conf配置文件。 trap的ip要保存在zebra中的统一配置文件mos。conf中。因此要在读取了mos。conf以后再发ColdStart的trap。 若是存在snmpd.conf文件时,当snmpd.conf更新时要调用update_config()函数来使更新生效。