Add support of ipv6InterfaceTable.ipv6InterfaceIdentifier Source: http://sourceforge.net/tracker/index.php?func=detail&aid=1669048&group_id=12694&atid=312694 ./configure --with-mib-modules="ip-mib/ipv4InterfaceTable ip-mib/ipv6InterfaceTable tunnel" test: snmpwalk 1.3.6.1.2.1.4.30 shows some entries Index: ./agent/mibgroup/if-mib/data_access/interface_linux.c =================================================================== RCS file: /cvsroot/net-snmp/net-snmp/agent/mibgroup/if-mib/data_access/interface_linux.c,v retrieving revision 1.40 diff -u -p -r1.40 interface_linux.c --- ./agent/mibgroup/if-mib/data_access/interface_linux.c 30 Jan 2007 13:39:42 -0000 1.40 +++ ./agent/mibgroup/if-mib/data_access/interface_linux.c 26 Feb 2007 13:02:25 -0000 @@ -36,6 +36,7 @@ typedef __u8 u8; /* ditto */ #include <unistd.h> #include <linux/sockios.h> +#include <linux/if_ether.h> unsigned int netsnmp_linux_interface_get_if_speed(int fd, const char *name); @@ -619,6 +620,31 @@ netsnmp_arch_interface_container_load(ne entry->type = IANAIFTYPE_OTHER; } + /* + * interface identifier is specified based on physaddr and type + */ + switch (entry->type) { + case IANAIFTYPE_ETHERNETCSMACD: + case IANAIFTYPE_ETHERNET3MBIT: + case IANAIFTYPE_FASTETHER: + case IANAIFTYPE_FASTETHERFX: + case IANAIFTYPE_GIGABITETHERNET: + case IANAIFTYPE_FDDI: + case IANAIFTYPE_ISO88025TOKENRING: + if (NULL != entry->paddr && ETH_ALEN != entry->paddr_len) + break; + + entry->v6_if_id_len = entry->paddr_len + 2; + memcpy(entry->v6_if_id, entry->paddr, 3); + memcpy(entry->v6_if_id + 5, entry->paddr + 3, 3); + entry->v6_if_id[0] ^= 2; + entry->v6_if_id[3] = 0xFF; + entry->v6_if_id[4] = 0xFE; + + entry->ns_flags |= NETSNMP_INTERFACE_FLAGS_HAS_V6_IFID; + break; + } + if (IANAIFTYPE_ETHERNETCSMACD == entry->type) entry->speed = netsnmp_linux_interface_get_if_speed(fd, entry->name);