Attached is a high level description of proposed changes to Solaris to
make it compliant with the latest MIB RFC's.
Thanks to Jim Carlson for his comments on the initial versions of this
draft which helped in refining the design.
Please send in your comments by COB 9/1/2006.
Thanks,
Rao.
At a high level this document describes the changes needed to make Solaris
compliant with the new IP/TCP/UDP MIB RFC's 4293/4113/4022. The goal is to
provide all the new information needed by the SNMP agent while remaining
backward compatible.
Backward Compatibility:
Even though the interface to get snmp data from the kernel is consolidation
private it is in use by third part programs and hence any change to return
extra data has to be backward compatible.
Solaris Next:
Based on the change history of mib2.h we believe we can safely add new elements
to the end of existing structures and return new structures and arrays.
Solaris Patch Release:
Currently T_OPTMGMT_REQ does not pass any options and len is zero in the opthdr.
We propose to set it to '1' to indicate that additional data related to new
RFC's should be returned. In absence of this flag no new data structures are
returned and the old structures returned will not include the new fields.
The exiting data structures will be extended as following:
typedef struct old_struct {
<old_members>
#ifdef NEW_MIB_COMPLIANT
<new_members>
#endif
} old_struct_t;
The offset of the first new member will be used to copy only the old structure.
NEW_MIB_COMPLIANT will be a consolidation private define for use within Sun
only.
The following section describes what changes will be made to address specific
items in the RFC. The section numbers correspond to sections in the RFC.
IP MIB RFC 4293:
3.2.1 General Objects:
mib2_ip_t will be enhanced by adding new elements to the end of the structure.
3.2.2 Interface Tables:
mib2_ipAddrEntry_t and mib2_ipv6AddrEntry_t will be expanded by adding elements
to the end of the structure.
3.2.3 IP Statistics Table:
Historically IPv4 statistics have been provided as aggregate statistics of the
system. However RFC 4293 changes that and in addition to the aggregate
statistics it requires per interface statistics as well.
The current per ill ipv6 statistics structure (mib2_ipv6IfStatsEntry_t) pointed
by ill_ip6_mib will be renamed and will be used to gather ipv4 and ipv6
statistics. New fields will be added to the end of this structure. For IPv4,
mib2_ip_t (ip_mib) will continue to exist to provide backward compatibility.
macros will be provided to map new structure and fields to previous
mib2_ipv6IfStatsEntry_t fields.
Per ill IPV4 statistics will be reported as level MIB2_IP and name
MIB2_IP_TRAFFIC_STATS
#define MIB2_IP_TRAFFIC_STATS 31
Aggregate statistics must be generated by the agent by adding per interface
statistics.
3.2.4 Internet Address Prefix Table
For V6 this information will be retrieved from ndpd via a socket using the
loopback address ::1 and port 5998.
No prefix information is needed for IPv4.
3.2.5 Internet Address Table:
mib2_ipAddrEntry_t and mib2_ipv6AddrEntry_t will be enhanced to provide
additional information required.
3.2.6 Internet Address Translation table
mib2_ipNetToMediaEntry_t and mib2_ipv6NetToMediaEntry_t will be extended to
provide any additional information required.
3.2.7 IPv6 Scope Zone Index Table:
Currently Solaris supports scope zone for link local addresses only and the
zone is same as the interface index. Hence no additional information is needed.
3.2.8 Default Router Table:
This information will be obtained from in.ndpd via interface defined in
section 3.2.4 above. For in.routed the current interface used by rtquery will
be enhanced to retrieve this information.
3.2.9 Router Advertisement Table:
This information is only required for IPv6. This information will be obtained
from in.ndpd via interface defined in section 3.2.4 above.
3.2.10 ICMP Statistics Tables
The current ICMP mib's seem to provide all the information needed. In case
any additional information is required it will be added to the existing
icmp mib interfaces.
TCP MIB RFC 4022:
mib2_tcp_t will be extended by adding fields to the end of the current
structure. New structures will be passed only if the opt len is set to 1.
UDP MIB RFC 4113:
mib2_udp_t will be extended by adding fields to the end of the current
structure. New structures will be passed only if the opt len is set to 1.
_______________________________________________
networking-discuss mailing list
[email protected]