DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
API compatibility

SMUX (libsmux) interface

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''

Object identifier (OID) structure source notes

On SCO OpenServer, the length element of the OID structure is a long, on UnixWare it is a short.

Object type (OT) structure source notes

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;

SCO OpenServer 64 bit counters

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.

Aggregate structure notes

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''.


Next topic: Termios and termio interfaces
Previous topic: send_request source compatibility notes

© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 27 April 2004