問題來源:三層交換機開發
需求:在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()函數來使更新生效。