|
|
The version of libsmux supported on UnixWare 7 is the same as that supported on SCO UnixWare 2.1.X, and implements SNMPv1.
The SCO OpenServer version of libsmux (included in /OpenServer/lib) is supported on UnixWare 7 for SCO OpenServer binaries only.
The routines found in libsmux are documented on the following manual pages:
The header files for SNMP are found in /usr/include/snmp on SCO OpenServer, and in /usr/include/netmgt on UnixWare 7 and SCO UnixWare 2.1.X.
Source compatibility for every one of these calls is affected by differences in the data structures used by the SCO OpenServer and UnixWare implementations. See the following sections for details:
Name of Interface | Legacy compatibility | UDK compatibility | |||||
---|---|---|---|---|---|---|---|
Compiled using SCO OpenServer DevSys | Compiled using SCO UnixWare 2.1.X SDK | Compiled using UnixWare 7 UDK | |||||
Library Name | Works on UnixWare 7? | Library Name | Works on UnixWare 7? | Library Name | Works on SCO OpenServer? | Works on SCO UnixWare 2.1.X? | |
dump_object | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
dump_object_by_tree | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
dump_objects_by_tree | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
inaddr2oid | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
mediaddr2oid | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
name2inst | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
name2obj | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
next2inst | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
o_ipaddr | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
o_longword | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
o_number | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
o_specific | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
o_string | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
oid2ode | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
readobjects | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
smux_close | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
smux_init | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
smux_register | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
smux_response | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
smux_simple_open | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
smux_trap | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
smux_wait | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
text2inst | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
text2obj | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
text2oid | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
text2syn | libsmux | Yes | libsmux | Yes | libsmux | Yes | Yes |
``Compatibility Table Legend''
On SCO OpenServer, the length
element of the OID structure is a
long,
on UnixWare it is a short
.
The object_type (OT) structure is defined differently on SCO OpenServer and UnixWare.
The OT structure on SCO OpenServer is defined as follows:
typedef struct object_type { char *ot_text; /* OBJECT DESCRIPTOR */ char *ot_id; /* OBJECT IDENTIFIER */ OID ot_name; /* .. */ OS ot_syntax; /* SYNTAX */ int ot_access; /* ACCESS */ #define OT_NONE 0x00 #define OT_RDONLY 0x01 #define OT_WRONLY 0x02 #define OT_RDWRITE (OT_RDONLY | OT_WRONLY) #define OT_RDCREAT (0x04 | OT_RDWRITE)u_long ot_views; /* for views */ int ot_status; /* STATUS */ #define OT_NONE 0x00 #define OT_OBSOLETE 0x01 #define OT_CURRENT 0x02 #define OT_OPTIONAL 0x03 #define OT_DEPRECATED 0x04
caddr_t ot_info; /* object information */ ot_getfunc ot_getfnx; /* get/get-next method */ ot_setfunc ot_setfnx; /* set method */ #define type_SNMP_PDUs_commit (-1) #define type_SNMP_PDUs_rollback (-2)
caddr_t ot_save; /* for set method */
int ot_range; /* close enough */ int ot_lendpoint; /* .. */ int ot_rendpoint; /* .. */
char *ot_index; /* INDEX */ char *ot_augments; /* or AUGMENTS */ caddr_t ot_iit; /* .. */
caddr_t ot_smux; /* for SMUX */ struct object_type *ot_chain; /* hash-bucket for text2obj */ struct object_type *ot_sibling; /* linked-list for name2obj */ struct object_type *ot_children; /* .. */
struct object_type *ot_next; /* linked-list for get-next */ } object_type, *OT;
On UnixWare, the structure is declared as follows:
typedef struct object_type { char *ot_text; /* OBJECT DESCRIPTOR */ char *ot_id; /* OBJECT IDENTIFIER */ OID ot_name; /* .. */ OS ot_syntax; /* SYNTAX */ int ot_access; /* ACCESS */ #define OT_NONE 0x00 #define OT_RDONLY 0x01 #define OT_WRONLY 0x02 #define OT_RDWRITE (OT_RDONLY | OT_WRONLY)unsigned long ot_views; /* for views */ int ot_status; /* STATUS */ #define OT_OBSOLETE 0x00 #define OT_MANDATORY 0x01 #define OT_OPTIONAL 0x02 #define OT_DEPRECATED 0x03
caddr_t ot_info; /* object information */ IFP ot_getfnx; /* get/get-next method */ IFP ot_setfnx; /* set method */ #define type_SNMP_PDUs_commit (-1) #define type_SNMP_PDUs_rollback (-2)
caddr_t ot_save; /* for set method */ caddr_t ot_smux; /* for SMUX */ struct object_type *ot_chain; /* hash-bucket for text2obj */ struct object_type *ot_sibling;/* linked-list for name2obj */ struct object_type *ot_children; /* .. */
struct object_type *ot_next; /* linked-list for get-next */ } object_type, *OT;
In addition, the OS structure has some extra elements on SCO OpenServer:
typedef struct syntax { char *os_name; /* syntax name */ int os_type; /* syntax type */ os_decode_func os_decode; /* PE -> data */ os_free_func os_free; /* free data */char *os_textual; /* for textual conventions */ char *os_display; /* for textual conventions */ struct enum_syntax *os_enum; /* for enumerations */ } *OS;
The UnixWare version of the OS structure is:
typedef struct object_syntax { char *os_name; /* syntax name */ int os_type; /* syntax type */ IFP os_decode; /* PE -> data */ IFP os_free; /* free data */ } *OS;
Objects of type Counter64
and the Counter64
structure
are not supported on UnixWare, but are supported on SCO OpenServer.
The SCO OpenServer ObjectSyntax structure has an extra
c64_value
element not supported on UnixWare.
A number of aggregate structures, such as those listed below, are affected by changes to lower-level structures.
For example, the OI structure is declared identically in both SCO OpenServer and UnixWare; but the structure members are of type OID and OT, which do have implementation differences.
The affected data structures are:
See the header file /usr/include/netmgt/snmp.h and the sections ``Object identifier (OID) structure source notes'', ``Object type (OT) structure source notes'', and ``SCO OpenServer 64 bit counters''.