| 
 @CHIP-RTOS - Data Structures used in TCP/IP APIIPC@CHIP® Documentation Index
 
 Data Structures
Here are  the BSD structures and other data types used by the 
TCP/IP API. All constants and data structures are defined in the TCPIPAPI.H header file.
 
 Notes:
  
Byte alignment is required
 within all data structures used within the API. 
The phrase "network byte order" means big endian (like Motorola machines, unlike Intel). 
 Related
: 
 
Contents
:
 
 
 ArpHeader
 Address Resolution Protocol
 (ARP) packet header has following form.
 |  | typedef struct tag_ArpHeader
{
    unsigned int     arpHardware;
    unsigned int     arpProtocol;
    unsigned char    arpHardwareLength;
    unsigned char    arpProtocolLength;
    unsigned int     arpOperation;
    unsigned char    arpSendPhyAddress[6];
    unsigned char    arpSendNetAddress[4];
    unsigned char    arpTargetPhyAddress[6];
    unsigned char    arpTargetNetAddress[4];
} ArpHeader; | 
 Related Topics
 Register_ARP_User_CB() API - 
Install ARP callback function
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.10 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 ArpRouteCacheEntry
 |  | typedef struct tagArpRouteCacheEntry
{
    unsigned int   ifIndex;       // Interface index for this entry
    unsigned long  flags;         // Type/state of entry (see below)
    unsigned long  arpIpAddress;  // Device IP address or network address
    unsigned long  mask;          // Ip network mask for cloned ARP entries
    long           arpTtl;        // TimeToLive in milliseconds
    long           hops;          // Number of routers between this host and route
    union
    {
        struct
        {
            // Device IP address for Local routing entry
            unsigned long  DevIpAddress;
        } LocalNetRouteEntry;
        struct
        {
            // Device Ethernet address for ARP entry
            unsigned char MacAddress[6];
            unsigned char filler[2];
        } ArpEntry;
        struct
        {
            unsigned long  GatewayIpAddress;   // Indirect route
        } GatewayEntry;
    } ArpRouteGwayUnion;
} ArpRouteCacheEntry; | 
 Commentsflags
 
 
This bit field is defined as follows:
 Note: Bit 2, 3, and 4 select the view of the ArpRouteGwayUnion union.
 Bit 2:    Indirect route  (GatewayEntry structure)
 Bit 3:    Valid ARP entry (ArpEntry structure)
 Bit 4:    Local route     (LocalNetRouteEntry structure)
 Bit 5:    Static route
 Bit 10, 11:    Cloned ARP entry (e.g. ARP entry for default gateway)
 Bit 16:    Route is up
 Bit 17:   arpIpAddress entry is a host address, 0: network address
 
 
 Related Topics
 GetARPRouteCacheEntries() API - Read internal ARP/Route cache table
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.10 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 ArpUserCallbackInfo
 A structure of this type is passed as an input parameter to an ARP 
user callback handler.
 |  | typedef struct ArpUserCallbackInfo
{
   int              size;         // Size of this structure
   unsigned int     dataLength;   // Length of the data in the ARP package
   void    far *    dataPtr;      // Pointer to the ARP data
   void    far *    devHandlePtr; // Device handle pointer of this incoming packet
                                  // for detecting the source device
} ArpCallbackUserInfo_t; | 
 Related Topics
 ArpHeader data structure
 Register_ARP_User_CB() API - 
Install ARP callback function
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.22 | V1.22 | V1.22 | V1.11 | V1.00 | 
|---|
 Top of list
 Index page
 
 atEntry
 |  | typedef struct tagAtEntry {
    long           IfIndex;         // Interface on which this entry maps
    unsigned char  PhysAddress[11]; // Physical address of destination
    unsigned char  PhysAddressLen;  // Length of PhysAddress
    unsigned long  NetAddress;      // IP address of physical address
} atEntry; | 
 SC1x CommentsThese structures are only available in SC1x @CHIP-RTOS versions which contain the 
SNMP option.   A SNMP agent is not part of the @CHIP-RTOS.   But if a user is able to implement 
an agent based on the TCP/IP API, they need access to the internal TCP/IP SNMP variables.
 Related Topics
 Get_SNMP_Data() API - Get internal TCP/IP SNMP variables
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.01 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 DnsMailHost
 Holds information on a mail host.
 |  | typedef struct DnsMailHost_
{
  char name[DNS_SIZE_NAME_STRING + 1];  // Domain name of the host
  unsigned short preference;            // Preference value of the host. Lower values are preferred.
} DnsMailHost; | 
 Related Topics
 getMailHosts() API
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | n/a | n/a | n/a | V1.05 | V1.00 | 
|---|
 Top of list
 Index page
 
 fd_set
 |  | typedef unsigned int fd_mask ;
typedef struct fd_set
{
    fd_mask fds_bits[MAX_BECK_SOCKETS/16] ;    // Socket bit field
} fd_set; | 
 CommentsThis data structure provides a bit field to specify which 
sockets to monitor and which sockets events occur in the 
select() API.   
Each bit corresponds to a socket.   The socket descriptor is 
used to provide the mapping between bits and sockets.   
For example for a socket with descriptor zero, this socket will 
be represented by bit 0 in this field.
 A set of macros are provided in the Beck C-library TCPIPAPI.H header file 
for manipulating these bit fields:
 
 
 
 
FD_SET(n, p)
  -  Sets bit 'n' in fd_set
 
at pointer 'p' to 1. 
 
FD_CLR(n, p)
  -  Zeroes bit 'n' in fd_set
 
at pointer 'p'. 
 
FD_ISSET(n, p)
  -  Tests bit 'n' in fd_set
 
at pointer 'p'. 
 
FD_ZERO(p)
  - Clears all bits in fd_set
 
at pointer 'p'. 
 
FD_COPY(src, dest)
  - Copies object 
at pointer 'src' into the object at pointer 'dest'.   
The intent here is that both of these pointers reference 
a fd_set
 structure, but the compiler will not 
type check this for you.
 Also the socket iterator function 
FD_Next() is 
available to sequence through a set of sockets.
 
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.22 | V1.22 | V1.22 | V1.11 | V1.00 | 
|---|
 Top of list
 Index page
 
 GetSocketOption
 This data structure and specified constants are defined in the 
TCPIPAPI.H library header file.
 |  | typedef struct tag_getsockopt
{
    int         protocol_level;   // Protocol level: IP level, TCP level or socket level
    int         optionName;       // Option's name
    char  far  *optionValue;      // Pointer to the option value buffer (type varies)
    int   far  *optionLength;     // Length of option value buffer
} GetSocketOption; | 
 CommentsThe type of data found at the location referenced by the optionValue member 
pointer varies depending on the particular socket option that is being dealt with.
 When manipulating socket options, the protocol_level at which the option resides and the 
name of the option (optionName member) must be specified.   
The size  of the buffer (in bytes) pointed to by the optionValue 
member depends on the option, and this size must be specified in the 
optionLength field.   
   These sizes are stated in the list of options below.   
The 
API uses the optionValue and optionLength members 
to report option values.
 
 The following list specifies the three different protocol levels and their valid socket options, 
including a short description and the length of the option value.   
Protocol level and optionName constants referred to here are defined in 
TCPIPAPI.H header file.
 
 Important
: The constants for IPC@CHIP® SC1x and SC1x3/SC2x are 
different.   Take a look at the respective target sections in TCPIPAPI.H. 
Use always the defined constant names.
 
 protocol_level=IP_PROTOIP_LEVEL
    (IP level options)
 
 
  
optionName=IPO_TOS:         Size: 8 bit, sizeof(char)Set IP type of service.
 default: 0
 
 
optionName=IPO_TTL:         Size: 8 bit, sizeof(char)Set IP time-to-live router hops.
 default: 64
 
 
protocol_level=IP_PROTOTCP_LEVEL
    (TCP level options)
  
optionName=TCP_NODELAY:     Size: 16 bit, sizeof(int)1: Disable nagle algorithm / 0: Enable nagle algorithm
 default: 0
 
 
optionName=TCP_NOPUSH:      Size: 16 bit, sizeof(int)1: Force TCP to delay sending any TCP data until a full sized segment 
is buffered in the TCP buffers
 (useful if continuous large amount of data is sent as with FTP).
 default: 0
 
 
optionName=TCP_SLOW_START:  Size: 16 bit, sizeof(int)1: Enable the TCP slow start algorithm / 0: disable
 default: 1
 
 
optionName=TCP_KEEPALIVE:   Size: 16 bit, sizeof(int)Set idle time seconds before sending keep alive probes.
 default: 7200, minimum: 10, maximum: 32767 seconds
 Notes:
  
The socket level option SO_KEEPALIVE (see below) must be enabled.
The minimum value was changed in @CHIP-RTOS V0.70 to 10 seconds (was 7200 seconds in @CHIP-RTOS V0.69).
 
optionName=TCP_DELAY_ACK:   Size: 16 bit, sizeof(int)Set the TCP delay ACK time in milliseconds.
 default: 200, minimum: 0, maximum: 65535 ms
 
 
optionName=TCP_FINWT2TIME:  Size: 16 bit, sizeof(int)Set the maximum amount of time TCP will wait for the remote side to close.
 default: 600, minimum: 0, maximum: 32767 seconds
 
 
optionName=TCP_2MSLTIME:    Size: 16 bit, sizeof(int)Set the maximum amount of time TCP will wait in the TIME WAIT state, 
once it has initiated a close.
 default: 2, minimum 0, maximum 32767 seconds
 
 
optionName=TCP_MAXRT:       Size: 16 bit, sizeof(int)Set the TCP/IP timeout in seconds, (0=System Default [75 Seconds], -1 = endless).
 default: 75, minimum: 1, maximum: 32767 seconds or endless.
 
 
optionName=TCP_MAXREXMIT:   Size: 16 bit, sizeof(int)Set the maximum number of TCP/IP send retries.
 default 12, minimum 0, maximum 32767
 
 
optionName=TCP_KEEPALIVE_INTV: Size: 16 bit, sizeof(int)Set keep alive interval probes.
 default: 75, minimum: 1, maximum: 600 seconds
 Notes:
  
This value can not be changed after a connection is established.
Also the socket must not be in listen mode.
 
optionName=TCP_KEEPALIVE_CNT: Size: 16 bit, sizeof(int)Set maximum number of keep alive probes before TCP gives up and closes the connection.
 default: 8, minimum: 0, maximum: 32767
 
 
optionName=TCP_SSL_CLIENT:  Size: 16 bit, sizeof(int)Enable SSL client negotiation, 1: enable, 0: disable
 default: 0
 
 
optionName=TCP_SSL_SERVER:  Size: 16 bit, sizeof(int)Enable SSL server negotiation, if set for a listening socket, 
all accepted sockets inherit this option value, 1: enable, 0: disable
 default: 0
 
 
optionName=TCP_SSLSESSION:  Size: 16 bit, sizeof(int)Set session Id for socket, if set for a listening socket, all accepted sockets 
inherit this option value
 
 
optionName=TCP_SSL_SEND_MIN_SIZE: Size: 16 bit, sizeof(int)Set the SSL send minimum size, if users send data is less than this value, 
user data will be queued.
 default: 0 (no queue), minimum 0, maximum 65535
 
 
optionName=TCP_SSL_SEND_MAX_SIZE: Size: 16 bit, sizeof(int)Set the SSL record maximum size, each record will at most 
have that much user data encapsulated.
 User data bigger than that size limit will be cut into two records.
 default: 8000 (no queue), minimum 100, maximum 16384
 
 
optionName=TCP_RTO_DEF:     Size: 32 bit, sizeof(long)Set the default retransmission timeout value in milliseconds.
 default: 3000 ms.
 
 
optionName=TCP_RTO_MIN:     Size: 32 bit, sizeof(long)Set the minimum retransmission timeout value in milliseconds.
 default: 100 ms.
 
 
optionName=TCP_RTO_MAX:     Size: 32 bit, sizeof(long)Set the maximum retransmission timeout value in milliseconds.
 default: 64000 ms.
 
 
optionName=TCP_TS:          Size: 16 bit, sizeof(int)Turn on/off the TCP time stamp option. 
1: Enable TCP time stamp, 0: disable
 default: 1
 Notes:
  
This value can not be changed after a connection is established.
Also the socket must not be in listen mode.
 
protocol_level=SOCKET_LEVEL
  
 
optionName=SO_REUSEADDR:    Size: 16 bit, sizeof(int)Enable/disable local address reuse, 1: enable, 0: disable
 default: 1
 
 
optionName=SO_KEEPALIVE:    Size: 16 bit, sizeof(int)Keep connections alive, 1: enable, 0: disable
 default: 0
 
 
optionName=SO_SNDBUF:       Size: 32 bits, sizeof(long)Socket send buffer size.   We recommend a maximum size of 8192 Bytes.
 default: TCP 4096, UDP 2048 bytes.
 
 
optionName=SO_RCVBUF:       Size: 32 bits, sizeof(long)Socket input buffer size.   We recommend a maximum size of 8192 Bytes.
 default: TCP 4096, UDP 2048 bytes.
 
 
 Related Topics
 getsockopt() API - Get socket options
 SetSocketOption structure typedef
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.01 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 IcmpMib
 |  | typedef struct tagIcmpMib
{
   unsigned long       icmpInMsgs;          // Total of ICMP msgs received
   unsigned long       icmpInErrors;        // Total of ICMP msgs received with errors
   unsigned long       icmpInDestUnreachs;
   unsigned long       icmpInTimeExcds;
   unsigned long       icmpInParmProbs;
   unsigned long       icmpInSrcQuenchs;
   unsigned long       icmpInRedirects;
   unsigned long       icmpInEchos;
   unsigned long       icmpInEchoReps;
   unsigned long       icmpInTimestamps;
   unsigned long       icmpInTimestampReps;
   unsigned long       icmpInAddrMasks;
   unsigned long       icmpInAddrMaskReps;
   unsigned long       icmpOutMsgs;
   unsigned long       icmpOutErrors;
   unsigned long       icmpOutDestUnreachs;
   unsigned long       icmpOutTimeExcds;
   unsigned long       icmpOutParmProbs;
   unsigned long       icmpOutSrcQuenchs;
   unsigned long       icmpOutRedirects;
   unsigned long       icmpOutEchos;
   unsigned long       icmpOutEchoReps;
   unsigned long       icmpOutTimestamps;
   unsigned long       icmpOutTimestampReps;
   unsigned long       icmpOutAddrMasks;
   unsigned long       icmpOutAddrMaskReps;
} IcmpMib; | 
 SC1x CommentsThese structures are only available in SC1x @CHIP-RTOS versions which contain the 
SNMP option.   A SNMP agent is not part of the @CHIP-RTOS.   But if a user is 
able to implement an agent based on the TCP/IP API, they will need access to 
these internal TCP/IP variables.
 Related Topics
 Get_SNMP_Data() API - 
Get internal TCP/IP SNMP variables
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.01 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 Iface_Entry
 |  | typedef struct tag_iface_device
{
     unsigned int  devIndex;       // Internal index number
     char          devName[14];    // Device name, terminated by zero
     unsigned long devIPAddr;      // IP address for this interface
     unsigned long devNetmask;     // Netmask for the route
     unsigned long devDestIpAddr;  // Remote peer address for PPP
     unsigned char PhysAddr[6];    // Physical device address, max. 6 Bytes
     int           devType;        // Type of the device driver:
                                   // 0: unknown,
                                   // 1: Ethernet driver,
                                   // 2: PPP protocol
                                   // 4: SLIP protocol (not supported)
                                   // 5: Internal loopback
     int           devDHCP;        // Interface configured by DHCP? 1:0
     int           devFlag;        // Device status flag
                                   // Bit1 == 1  Device opened
                                   // Bit2 == 1  Device IP config in progress(PPP or DHCP)
                                   // Bit3 == 1  Device open completed
     int           devMTU;         // Max. Transfer Unit
     void far *    reserved;
} Iface_Entry; | 
 Related Topics
 Get_Iface_Entries() API - 
Read table of TCP/IP device interfaces
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.01 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 Iface_Entry_Ext
 SC1x: |  | typedef struct tag_iface_device_ext
{
   unsigned int  devIndex;        //Internal index number
   char          devName[14];     //Device name
   unsigned long devIPAddr[4];    //IP addresses for this interface
   unsigned long devNetmask[4];   //Netmasks for the route
   unsigned long devDestIpAddr[4];//Remote peer addresses for PPP
   unsigned char PhysAddr[6];     //Physical device address, max. 6 Bytes
   int  devType;                  // type of the device driver:
                                  // 0: unknown,
                                  // 1: ethernet driver,
                                  // 2: use PPP protocol   server
                                  // 3: use PPP protocol client
                                  // 4: Internal loopback
   int  devDHCP[4];               // Interface configured by DHCP 1:0
   int  devFlag;
   int  devMTU;                   // Max. Transfer Unit
   void far *    IfaceHandle;     // handle type, to identify the interface internal
}Iface_Entry_Ext; | 
 SC1x3/SC2x: |  | typedef struct tag_iface_device_ext
{
  unsigned int  devIndex;        // Internal index number
  char          devName[14];     // Device name
  unsigned long devIPAddr[5];    // IP addresses for this interface
  unsigned long devNetmask[5];   // Netmasks for the route
  unsigned long devDestIpAddr[5];// Remote peer addresses for PPP
  unsigned char PhysAddr[6];     // Physical device address, max. 6 Bytes
  int  devType;                  // type of the device driver:
                                 // 0: unknown,
                                 // 1: ethernet driver,
                                 // 2: use PPP protocol   server
                                 // 3: use PPP protocol client
                                 // 4: Internal loopback
   int  devDHCP[5];              // Interface configured by DHCP 1:0
   int  devFlag;
   int  devMTU;                  // Max. Transfer Unit
   void far *    IfaceHandle;    // handle type, to identify the interface internal
}Iface_Entry_Ext; | 
 Related Topics
 Get_Iface_Entries_Ext() API - 
Read table of TCP/IP device interfaces
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.20 | V1.20 | V1.20 | V1.05 | V1.00 | 
|---|
 Top of list
 Index page
 
 IfaceIPv6_Entry
 |  | typedef struct tag_user_iface_ipv6_entry{
    void  far *     devIfaceHandle;       // Device handle pointer (internal used)
    int             devIndex;             // Internal used index number
    int             devType;              // Type of the device driver:
                                          // 0: unknown,
                                          // 1: Ethernet driver,
                                          // 2: PPP protocol
                                          // 4: SLIP protocol (not supported)
                                          // 5: Internal loopback
    char            devName[14];          // Device name, terminated by zero
    unsigned int    devFlags;             // Device status flag
    unsigned int    devIPv6Flags;         // IPv6 status flags
    unsigned int    devIPv6Mtu;           // The MTU of the IPv6 link
    struct in6_addr devIPv6PPPPeerIpAddr; // Remote peer address for PPP
    struct in6_addr devIPv6AddrArray[10];
    unsigned char   devIPv6PrefixLen[10];
    unsigned char   devIPv6AddrFlagsArray[10]; // Array of configuration flags
    unsigned char   devPhysAddr[6];       // Physical address of the interface
    void far      * devIPv6ExtensionPtr; //for future use
}IfaceIPv6_Entry; | 
 CommentsFurther explanations for certain structure members follows.
 devFlags
  
Device status flags:Bit1 == 1    Device opened
 Bit2 == 1    Device IPv6 config in progress
 Bit3 == 1    Device open completed
 
 devIPv6Flags
  
IPv6 status flags:Bit1 == 1    Link-layer address configured
 Bit2 == 1    Link-local address configured (or is pending)
 Bit3 == 1    Site-local address configured (or is pending)
 Bit4 == 1    Global scope IPv6 native address
 Bit5 == 1    Global scope IPv4-compatible IPv6 address configured
 Bit6 == 1    Global scope 6-to-4 IPv6 address
 Bit7 == 1    IPv6 connectivity established on PPP interface
 
 devIPv6AddrArray
  
Array of all configured IPv6 addresses on this interface.
 devIPv6PrefixLen
  
Array of all configured Prefix length of all IPv6 addresses.
 
 Related Topics
 Get_IPv6_Iface_Entries() API - 
Read table of TCP/IPv6 device interfaces
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | n/a | n/a | n/a | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 IfMib
 |  | typedef struct tagIfMib           // Interface table data
{
    long          ifIndex;        // index of this interface
    char          ifDescr[32];    // description of interface
    long          ifType;         // network device type
    long          ifMtu;          // maximum transfer unit
    unsigned long ifSpeed;        // bandwidth in bits/sec
    unsigned char ifPhysAddress[11];  // interface's address
    unsigned char PhysAddrLen;    // length of physAddr: 6
    long          ifAdminStatus;  // desired state of interface, not supported
    long          ifOperStatus;   // current operational status, not supported
    //counters
    unsigned long   devLastChange;      // value of sysUpTime when current state entered
    unsigned long   devInOctets;        // number of octets received on interface
    unsigned long   devInUcastPkts;     // number of unicast packets delivered
    unsigned long   devInMulticastPkts; // number of multicast packets delivered,
                                        //   not supported.
    unsigned long   devInBroadcastPkts; // broadcasts delivered
    unsigned long   devInDiscards;      // number of broadcasts
    unsigned long   devInErrors;        // number of packets containing errors
    unsigned long   devInUnknownProtos; // number of packets with unknown protocol
    unsigned long   devOutOctets;       // number of octets transmitted
    unsigned long   devOutUcastPkts;    // number of unicast packets sent
    unsigned long   devOutMulticastPkts;// number of multicast packets sent
    unsigned long   devOutBroadcastPkts;// broadcasts sent
    unsigned long   devOutDiscards;     // number of packets discarded with no error
    unsigned long   devOutErrors;       // number of pkts discarded with an error
    unsigned long   devOutQLen;         // number of packets in output queue
    unsigned long   devSpecific;
} IfMib; | 
 SC1x CommentsThese structures are only available in SC1x @CHIP-RTOS versions which contain the 
SNMP option.   A SNMP agent is not part of the @CHIP-RTOS.   But if a user is able to implement 
an agent based on the TCP/IP API, they need access to the internal TCP/IP SNMP variables.   
The SNMP MIB variables are not a part of our current official 6 @CHIP-RTOS versions.   
It's necessary to order directly a @CHIP-RTOS version which includes this feature.
 Related Topics
 Get_SNMP_Data() API - 
Get internal TCP/IP SNMP variables
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.01 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 in_addr
 |  | struct in_addr
{
    u_long s_addr; // 32 bit netid/hostid address in network byte order
}; | 
 Related Topics
 sockaddr_in data structure
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.00 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 in6_addr
 128-bit IPv6-formatted address in network byte order
 |  | struct in6_addr
{
    union
    {
        unsigned char  ip6U8[16];
        unsigned short ip6U16[8];
        unsigned long  ip6U32[4];
    } ip6Addr;
}; | 
 CommentsMapped IPv4 addresses will appear in the ip6Addr.ip6U32[3] 
member.
 Related Topics
See sockaddr_in6 structure
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | n/a | n/a | n/a | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 IpMib
 |  | typedef struct tagIpMib
{
    long                ipForwarding;      // 1
    long                ipDefaultTTL;      // default TTL for pkts originating here
    unsigned long       ipInReceives;      // no. of IP packets received from interfaces
    unsigned long       ipInHdrErrors;     // number of pkts discarded due to header errors
    unsigned long       ipInAddrErrors;    // no. of pkts discarded due to bad address
    unsigned long       ipForwDatagrams;   // number pf pkts forwarded through this entity
    unsigned long       ipInUnknownProtos; // no. of local-addressed pkts w/unknown proto
    unsigned long       ipInDiscards;      // number of error-free packets discarded
    unsigned long       ipInDelivers;      // number of datagrams delivered to upper level
    unsigned long       ipOutRequests;     // number of IP datagrams originating locally
    unsigned long       ipOutDiscards;     // number of error-free output IP pkts discarded
    unsigned long       ipOutNoRoutes;     // number of IP pkts discarded due to no route
    long                ipReasmTimeout;    // seconds fragment is held awaiting reassembly
    unsigned long       ipReasmReqds;      // no. of fragments needing reassembly (here)
    unsigned long       ipReasmOKs;        // number of fragments reassembled
    unsigned long       ipReasmFails;      // number of failures in IP reassembly
    unsigned long       ipFragOKs;         // number of datagrams fragmented here
    unsigned long       ipFragFails;       // no. pkts unable to be fragmented here
    unsigned long       ipFragCreates;     // number of IP fragments created here
    unsigned long       ipRoutingDiscards;
} IpMib; | 
 SC1x CommentsThese structures are only available in SC1x @CHIP-RTOS versions which contain the 
SNMP option.   A SNMP agent is not part of the @CHIP-RTOS.   But if a user is able to implement 
an agent based on the TCP/IP API, they need access to these internal TCP/IP variables.
 Related Topics
 Get_SNMP_Data() API - 
Get internal TCP/IP SNMP variables
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.01 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 IpUserCallbackInfo
 A structure of this type is passed as an input parameter to an IP user callback handler.
 |  | struct IpUserCallbackInfo
{
   int              size;        // Size of this struct
   unsigned long    srcAddr;     // Source IP Address (in long format, already in correct byte order)
   unsigned long    destAddr;    // Destination IP Address (in long format, already in correct byte order)
   unsigned int     srcPort;     // Source Port (already in correct byte order)
   unsigned int     destPort;    // Destination Port (already in correct byte order)
   unsigned char    protocol;    // Protocol (see list below)
   int              fragmented;  // 0: it is an unfragmented package, 1: it is a fragment
   unsigned int     dataLength;  // Length of the data in the IP package
                                 //  (only available if package is not fragmented!)
   void far *       dataPtr;     // Pointer to the IP data
                                 //  (only available if package is not fragmented!)
   //Extended: Since SC12 RTOS 1.11 B, SC13 1.01B
   // Use the size parameter of this struct at your application, for detecting,
   // if these struct members are available
   void *           ipHdrPtr;    // Pointer to the IP header
   unsigned int     ipHdrLen;    // length of IP header
} IpCallbackUserInfo; | 
 CommentsProtocol types enumerated by the protocol member are coded as follows:1      ICMP    (Internet Control Management Protocol
)
 2      IGMP    (Internet Group Management Protocol
)
 6      TCP    (Transmission Control Protocol
)
 17    UDP    (User Datagram Protocol
)
 
 Note:   The IP callback function will be called before defragmenting fragmented 
IP packages.   So if we receive a fragmented package, the IP callback will be 
called for every received fragment.
 SC1x3/SC2x CommentsAt the current SC1x3/SC2x CHIP-RTOS version the IP callback features exists only for IPv4 packets.
 Related Topics
 RegisterIPCallbackHandler() API - 
Install IP callback function
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.10 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 Packet_Count
 |  | typedef struct tag_cnt_packet
{
    unsigned int far * cnt_all_packets;      // count all incoming Ethernet packets
    unsigned int far * cnt_ip_packets;       // count incoming IP packets
    unsigned int far * cnt_arp_packets;      // count incoming ARP packets
    unsigned int far * cnt_tcp_packets;      // count incoming TCP packets
    unsigned int far * cnt_udp_packets;      // count incoming UDP packets
    unsigned int far * cnt_icmp_packets;     // count incoming ICMP packets
    unsigned int far * cnt_all_sended_packets;  // count all sent Ethernet packets
    unsigned int far * cnt_ip_sended_packets;   // count all sent IP packets
    unsigned int far * cnt_arp_sended_packets;  // count all sent ARP packets
    unsigned int far * cnt_tcp_sended_packets;  // count all sent TCP packets
    unsigned int far * cnt_udp_sended_packets;  // count all sent UDP packets
    unsigned int far * cnt_icmp_sended_packets; // count all sent ICMP packets
    unsigned int far * cnt_ip_chksum_errs;   // checksum errors on incoming IP packets
    unsigned int far * cnt_udp_chksum_errs;  // checksum errors on incoming UDP packets
    unsigned int far * cnt_tcp_chksum_errs;  // checksum errors on incoming TCP packets
    unsigned int far * cnt_eth_errs;         // errors on incoming Ethernet packets
} Packet_Count; | 
 CommentsThe counters count_all_packets and count_all_sended_packets count only 
Ethernet packets.Other counters also count the packets from and to other devices e.g. local loopback packets 
and PPP packets.
 
 Related Topics
 Get_TCPIP_Statistics() API - 
Access packet counts.
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.00 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 PasCallBack
 |  | typedef struct tag_PasCallBack
{
    int         sd;     // socket descriptor
    int         event;  // occurred event
} PasCallBack; | 
 CommentsThe pointer to this structure will be passed to a Pascal callback function in the 
registers ES:DI.   You can read out the information about the socket and the event 
which has triggered the callback function.
 Related Topics
To register a Pascal callback function see API_REGISTER_CALLBACK_PASCAL 
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.02 | V1.00 | V1.00 | n/a | n/a | 
|---|
 Top of list
 Index page
 
 Ping
 |  | typedef struct tag_ping_command
{
   int     sd;                 // Socket descriptor, set by PING_OPEN
   // User must set following four values prior to Ping_Open() API call
   char far *remoteHostNamePtr; // Remote IP
   int     pingInterval;       // seconds
   int     pingDataLength;     // Maximum 2080 bytes
   unsigned long count;        // Limit number of pings sent.  Set to
                               //  zero if ping should run forever
                               //  (until Ping_Close() is called).
   unsigned char pingstate;    // ping socket state, 1: open 0: closed
   // Statistics, filled in by system inside Ping_Statistics() API:
   unsigned long transmitted;  // Sent ping requests count
   unsigned long received;     // Received replies count
   unsigned int lastsenderr;   // Last send error
   unsigned int lastrcverr;    // Last receive error
   unsigned long maxRtt;       // Maximum round trip time (ms)
   unsigned long minRtt;       // Minimum round trip time (ms)
   unsigned long lastRtt;      // Round trip time (ms) of
                               //  the last ping request/reply.
} Ping; | 
 CommentsCaller to 
Ping_Open() API must 
initialize structure members:
 
  
remoteHostNamePtr ... who to "ping"pingInterval  ... block repetition rate in seconds
 pingDataLength ... size of ping data blocks
 count ... set to zero, if ping should run forever
 
 The remainder of the data structure is managed within the API functions.
 
 Related Topics
API function Ping_Open() - Start ICMP echo requests
API function Ping_Statistics() - Collect results
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.21 | V1.21 | V1.21 | V1.10 | V1.00 | 
|---|
 Top of list
 Index page
 
 PKI_CERT_ADD_Entry
 |  | typedef struct tag_pki_cert_add_entry
{
  void far * fileNamePtr; // file name of certificate
  int        fileFormat;  // file format:      0x01 = PEM format,
                          //                   0x02 = DER format
  int        certType;    // certificate type: Bit0 = 1: local certificate,
                          //                   Bit1 = 1: non local certificate (CA or peer),
                          //                   Bit3 = 1: root CA certificate (use together with Bit1)
  void far * idPtr;       // identification string
  int        idLength;    // length of identification string
  void far * caIdPtr;     // CA identication string
} PKI_CERT_ADD_Entry; | 
 CommentsIf caIdPtr is NULL then the PKI will automatically search the existing certificate 
database to find the CA by matching DN (distinguished name). If the root CA is added 
caIdPtr should be NULL.
 Related Topics
 PKI_CertificateAdd() API - 
Add certificate to public key infrastructure
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | n/a | n/a | n/a | V0.91 | V1.00 | 
|---|
 Top of list
 Index page
 
 PKI_OWNKEYPAIR_ADD_Entry
 |  | typedef struct tag_pki_ownkeypair_add_entry
{
  void far * fileNamePtr; // file name of public/private key file
  int        fileFormat;  // file format: 0x01 = PEM format,
                          //              0x02 = DER format
  int        keyType;     // key type:    0x00 = RSA key
} PKI_OWNKEYPAIR_ADD_Entry; | 
 Related Topics
 PKI_OwnKeyPairAdd() API - 
Add a public/private key pair
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | n/a | n/a | n/a | V0.91 | V1.00 | 
|---|
 Top of list
 Index page
 
 PPPClie_ModemCmd
 |  | typedef struct tag_pppclie_modem_cmd
{
      char  * modemcmd;    //modem command string (e.g. +++ or ATO);
      char  * modemans;    //expected answer from modem (NULL for no answer expected);
      int   timeout;       //Max. Timeout in seconds to wait for an answer
      int   retries;       //Number of retries
}PPPClie_ModemCmd; | 
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.26 | V1.26 | V1.26 | V1.17 | V1.17 | 
|---|
 Top of list
 Index page
 
 PPPClie_ModemCtrl
 |  | typedef struct tag_pppclie_modem_ctrl
{
   //idle interval time, at which the pppclient executes the configured control commands
   int ctrl_idle_secs;
   //modem control commands to execute
   PPPClie_ModemCmd ctrlcmd[3];
}PPPClie_ModemCtrl;
Example for a modem control variable:
PPPClie_ModemCtrl modem_ctrl =
{  20,                // idle interval after which the modem commands are executed
   {{"+++","OK",2,2}, // Switch into modem command mode
                      // If the modem is not connected it doesn't answer with "OK"
                      // -> close ppp session
    {"AT","OK",2,2},  // Check, if the modem is in command mode
    {"ATO",NULL,0,0}  // Switch modem back to online mode
   }
}; | 
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.26 | V1.26 | V1.26 | V1.17 | V1.17 | 
|---|
 Top of list
 Index page
 
 PPPClient_Init
 |  | typedef struct tag_ppp_client
{
   int               port;
   int               auth;
   int               modem;
   int               flow;
   long              baud;
   unsigned long     idletimeout;
   char              username[PPP_MAXNAME_LEN];
   char              password[PPP_MAXNAME_LEN];
   void              far * dptr;
   char              PPPClieipAddrStr[16];
   char              PPPClieRemipAddrStr[16];
   char              PPPClienetMaskStr[16];
   char              PPPClieipGatewayStr[16];
   PPPDial           pppdial[PPP_MAX_DIAL];
   PPP_ModemHangup   modem_hangup;
   int               break_modem;
} PPPClient_Init; | 
 CommentsThe PPPClient_Init structure is used to open a PPP client session.   
For how to initialize and use these structures see the PPPCLIE.C example.  The 
structure has the following members:
 auth
 
0:    no authentication1:    PAP  Client must send user name and password for PAP authentication to the peer
 2:    CHAP Client must send user name and password for CHAP authentication to the peer
 3:    PAP  Client expects PAP user name and password from the peer
 4:    CHAP Client expects CHAP user name and password from the peer
 
 modem
  
modem usage:0: null modem, 1: modem
 2: modem usage with control check enabled (in idle case)
 After each time interval during which the PPP client receive no data, 
the PPP client executes cyclic 
in intervals of a defined idle time
 
an user defined set of modem commands to check the status of the modem. 
The PPP client closes the connection, if the execution of one of these commands failed. 
The idle interval and the modem command set must be specified at a variable of type 
PPPClie_ModemCtrl. 
The PPP client expects the address of this variable at the pointer 
dptr
 of 
the PPPClient_Init structure variable.
 3: modem usage with cyclic control check enabled
 Same as modem == 2 with one difference:
 After each time interval the client executes the configured modem commands. 
In this mode the configured modem commands are not printed via stdout at execution time, even if 
MODEMTRACE is enabled.
 baud
 idletimeout
  
Close PPP after this amount of idle time, in seconds.(0: No closing after idle time)
 
 username
  
Applicable if auth is non-zero.
 password
  
Applicable if auth is non-zero.
 dptr
  
If parameter modem==2 (see above), pointer to a variable of type 
PPPClie_ModemCtrlelse: Not used.
 PPPClieipAddrStr
  
If this IP string is set to "0.0.0.0" then the client expects an 
IP address from the peer.   This IP string is then updated after a 
successful connection is established.
 If this string not set to "0.0.0.0" then the client 
will use this IP address during the PPP session.
 
 PPPClieRemipAddrStr
  
If this IP string is set to "0.0.0.0" then the client allows the peer to 
use its own IP address during the PPP session.    This string is then 
updated after a successful connection has been established.
 If this IP string is not set to "0.0.0.0" then 
the client will configure the remote peer with this IP address.
 
 PPPClienetMaskStr
 PPPClieipGatewayStr
 pppdial
  
This array of the PPPdial 
structures is used for initializing 
and dialing a modem.   These modem commands will be executed at the start 
of establishing a connection to a PPP server.
 modem_hangup
  
This PPP_ModemHangup structure 
is used when closing the modem connection.
 break_modem
  
Flag for interrupting IPC@CHIP®-to-modem communication, break dialing, connect 
control communication (dialing, waiting for connect).   Setting 
break_modem to 1 breaks current modem control communication 
between IPC@CHIP® and the modem at a PPP client open or close call.   
The PPP client reads this flag and breaks the dialing if the flag is set.   
This flag can be set from another task.    It will not break an established 
PPP link!    Don't forget to clear this flag to zero after breaking.
 
 SC1x3/SC2x Commentsport
 
Serial port  (0:EXT 1:COM 2:SER2 3:SER3)
 flow
  
Serial port flow control: (0: none, 1:XON/XOFF, 2:RTS/CTS)
 The flow control mode XON/XOFF applied to PPP has not been tested.   
It is not advisable to use it.   The XON/XOFF mode is 
also available if the DMA 
receive mode for the selected serial port is enabled, but due to the internal 
functionality of DMA it is not possible to immediately detect an XON or XOFF 
from the peer.   Therefore it is possible that an overrun situation can 
occur at the connected peer (e.g. GSM modem).   We now offer this mode 
because some GSM modems support only XON/XOFF flow control.
 
 
 SC1x Commentsport
 
Serial port  (0:EXT 1:COM)
 flow
  
Serial port flow control: (0: none, 1:XON/XOFF, 2:RTS/CTS)
 The flow control mode XON/XOFF applied to PPP has not been tested.   
It is not advisable to use it.   Since @CHIP-RTOS 1.02B XON/XOFF mode is 
also available if the DMA 
receive mode for the selected serial port is enabled, but due to the internal 
functionality of DMA it is not possible to immediately detect an XON or XOFF 
from the peer.   Therefore it is possible that an overrun situation can 
occur at the connected peer (e.g. GSM modem).   We now offer this mode 
because some GSM modems support only XON/XOFF flow control.
 
 
 Related Topics
 PPP_Client_Open() API - 
Open PPP client session.
 PPPdial dial-up command data
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.00 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 PPPClient_Init_IPv6
 |  | typedef struct tag_ppp_client_ipv6
{
   int                port;
   int                auth;
   int                modem;
   int                flow;
   long               baud;
   unsigned long      idletimeout;
   char               username[PPP_MAXNAME_LEN];  // Used if .auth != 0
   char               password[PPP_MAXNAME_LEN];  // Used if .auth != 0
   void       far  *  dptr;                     // dummy ptr
   char               PPPClieipAddrStr[INET6_ADDRSTRLEN];
   char               PPPClieRemipAddrStr[INET6_ADDRSTRLEN];
   PPPDial            pppdial[PPPCLIE_MAX_DIAL];
   PPP_ModemHangup    modem_hangup;
   int                break_modem;
}PPPClient_Init_IPv6; | 
 CommentsThe PPPClient_Init_IPv6 structure is used to open a PPP client session.   
For how to initialize and use these structures see the PPPCLIE.C example.   The 
structure has the following members:
 port
  
Serial port  (0:EXT 1:COM 2:SER2 3:SER3)
 auth
  
0:    no authentication1:    PAP  Client must send user name and password for PAP authentication to the peer
 2:    CHAP Client must send user name and password for CHAP authentication to the peer
 3:    PAP  Client expects PAP user name and password from the peer
 4:    CHAP Client expects CHAP user name and password from the peer
 
 modem
  
modem usage (0:null modem, 1:modem)
 flow
  
Serial port flow control: (0: none, 1:XON/XOFF, 2:RTS/CTS)
 baud
 idletimeout
  
Close PPP after this amount of idle time, in seconds.(0: No closing after idle time)
 
 username
  
Applicable if auth is non-zero.
 password
  
Applicable if auth is non-zero.
 dptr
 PPPClieipAddrStr
  
Storage for auto configured IPv6 address string.   This will be filled 
in after the PPP link has been established.
 PPPClieRemipAddrStr
  
Storage for auto configured Remote peer IPv6 address string.   
This will be filled in after the PPP link has been established.
 pppdial
  
This array of the PPPdial 
structures is used for initializing 
and dialing a modem.   These modem commands will be executed at the start 
of establishing a connection to a PPP server.
 modem_hangup
  
This PPP_ModemHangup structure 
is used when closing the modem connection.
 break_modem
  
Flag for interrupting IPC@CHIP®-to-modem communication, break dialing, connect 
control communication (dialing, waiting for connect).   Setting 
break_modem to 1 breaks current modem control communication 
between IPC@CHIP® and the modem at a PPP client open or close call.   
The PPP client reads this flag and breaks the dialing if the flag is set.   
This flag can be set from another task.    It will not break an established 
PPP link!    Don't forget to clear this flag to zero after breaking.
 
 
 Related Topics
 PPP_Client_Open_IPv6() API - 
Open PPP client session.
 PPPdial dial-up command data
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | n/a | n/a | n/a | V0.90 | V1.00 
 | 
|---|
 Top of list
 Index page
 
 PPPDial
 |  | typedef struct tag_pppdial_init
{
      char far * modemcmd;  // modem command string
      char far * modemans;  // modem answer  string (max. 80 characters + '\0')
      int   timeout;        // seconds, 0 = no time out
      int   retries;        // Maximum number of dial attempts.
      char  expect_send;    // = 0: PPP client sends modem AT command
                            //      and expects modem answer (e.g. OK).
                            // = 1: PPP client expects modem answer
                            //   (e.g. CONNECT) and sends modem command.
} PPPDial; | 
 CommentsThe PPPDial structure is used during PPP client dial-up.
 Related Topics
 PPP_Client_Open() API - Open PPP client session
 PPPClient_Init PPP client open data structure
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.00 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 PPP_IPCfg_Data
 |  | typedef struct tag_pppipcfg_data
{
     char          IP[16];          // PPP server IP
     char          RemIP[16];       // Remote IP (given to the client, if connected)
     char          Netmask[16];     // Subnet mask
     char          Gateway[16];     // Gateway
     unsigned int  comport;         // COM port: EXT=0, COM=1
     unsigned int  auth;            // 0: no authentication 1:PAP 2:CHAP
     unsigned int  modem;           // Analog Modem=1, Null Modem cable=0
     unsigned int  flow;            // Flow control
     long          baud;            // BAUD rate
} PPP_IPCfg_Data; | 
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.00 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 PPP_IPCfg_Data_IPv6
 |  | typedef struct tag_pppipcfg_data_ipv6
{
     char          IP[46];          // auto configured PPP server IP
     char          RemIP[46];       // auto configured Remote peer IP
     unsigned int  comport;         // COM port: EXT=0, COM=1
     unsigned int  auth;            // 0: no authentication 1:PAP 2:CHAP
     unsigned int  modem;           // Analog Modem=1, Null Modem cable=0
     unsigned int  flow;            // Flow control
     long          baud;            // BAUD rate
} PPP_IPCfg_Data_IPv6; | 
 CommentsThe PPP_IPCfg_Data_IPv6 structure is used to read out the configuration of the PPP server.
 Related Topics
 PPP_Server_Get_Cfg_IPv6() API - 
Get PPP server IPv6 configuration
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | n/a | n/a | n/a | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 PPP_ModemHangup
 |  | typedef struct tag_pppclie_hangup
{
      char far *modemcmdmode;    // string for switching modem into command mode e.g. +++
      int      delay;            // delay time after switching in seconds
      PPPDial pppdial[PPP_MAX_DIAL];  // modem commands and answer for hang-up procedure
}PPP_ModemHangup; | 
 CommentsThe PPP_ModemHangup structure is used when closing a PPP modem connection.
 Related Topics
 PPP_Client_Open() API - 
Open PPP client session
 PPPClient_Init PPP client open data structure
 Top of list
 Index page
 
 PPP_Option
 This data structure and associated constants are defined in TCPIPAPI.H header 
file.   It is used to control PPP options for both the PPP server and client.
 |  | typedef struct tag_ppp_option
{
   int             protocolLevel;     // PPP_LCP_PROTOCOL or PPP_IPCP_PROTOCOL
   int             remoteLocalFlag;   // PPP_OPTION_WANT or PPP_OPTION_ALLOW
   int             optionName;        // From constants defined below
   const char far *optionValuePtr;    // To buffer provided by user
   int             optionLength;      // Number of bytes at *optionValuePtr
} PPP_Option;
 // PPP Protocol levels
 #define PPP_LCP_PROTOCOL     0x21c0  // LCP,  Link control protocol
 #define PPP_IPCP_PROTOCOL    0x2180  // IPCP, Internet protocol control protocol
 #define PPP_PROTOCOL         0x0000  // PPP common
 // For .remoteLocalFlag
 #define PPP_OPTION_WANT           0  // What we want to use for our side
 #define PPP_OPTION_ALLOW          1  // What we will allow the remote side to use
 // Protocol options for .optionName field
 // LCP protocol options
 #define PPP_LCP_MAX_RECV_UNIT     1  // Maximum receive unit
 #define PPP_LCP_ACCM              2  // Async Ctrl Char Map
 #define PPP_LCP_AUTH_PROTOCOL     3  // Authentication, def. 0, else PPP_PAP or PPP_CHAP
 #define PPP_LCP_PROTOCOL_COMP     7  // Turn On/Off protocol field compression
 #define PPP_LCP_ADDRCONTROL_COMP  8  // Turn ON/OFF address/control field compression
 #define PPP_LCP_TERM_RETRY        9  // Terminate retries,
 #define PPP_LCP_CONFIG_RETRY      10 // Config retries,
 #define PPP_LCP_TIMEOUT           11 // Retransmission timeout in seconds
 #define PPP_LCP_MAX_FAILURES      12 // LCP maximum failure
 // IPCP protocol options
 #define PPP_IPCP_COMP_PROTOCOL    2  // VJ-TCP/IP header compression
 #define PPP_IPCP_IP_ADDRESS       3  // IP Address the requesting system wishes to use
 #define PPP_IPCP_VJ_SLOTS         4  // Number of VJ slots
 #define PPP_IPCP_RETRY            5  // IPCP Timeout, retry options
 #define PPP_IPCP_TIMEOUT          6  // IPCP timeout seconds
 #define PPP_IPCP_MAX_FAILURES     7  // LCP maximum failures
 #define PPP_IPCP_DNS_PRI         29  // Specify DNS prim. server IP
 #define PPP_IPCP_DNS_SEC         31  // Specify DNS sec.  server IP
 //PPP options
 #define PPP_SEND_BUFFER_SIZE      1  // Data buffered by PPP link layer,
                                      // before the device driver send function
                                      // is called, length 2, def. 1 (Byte)
 //Authentication constants
 #define PPP_PAP              0x23c0  // PAP authentication
 #define PPP_CHAP             0x23c2  // CHAP authentication | 
 CommentsThe type of data found at the location referenced by the optionValue member varies 
depending on the particular PPP option that is being dealt with.
 When manipulating socket options, the protocol_level at which the option resides and the 
name of the option (optionName member) must be specified.
 
 The size of the buffer required pointed to by the optionValue member 
depends on the option.   These sizes (in bytes) are stated at the descriptions list 
below.   The parameters optionValue and optionLength 
are used to access option values.
 
 The structure member remoteLocalFlag can have two possible values:
 PPP_OPTION_WANT   or   PPP_OPTION_ALLOW.
 
 With remoteLocalFlag set to PPP_OPTION_WANT, the IPC@CHIP® sends a PPP configuration 
request to the connected peer which contains the specified option.
 
 With remoteLocalFlag set to PPP_OPTION_ALLOW, the IPC@CHIP® 
accepts an incoming PPP configuration request from the connected peer for 
the specified option.
 
 The following list specifies the PPP options for the two different protocol levels, 
including a short description and the length of the option needed for 
setting the optionLength member.   Protocol level and 
optionName constants referred to here are defined in TCPIPAPI.H
 
 protocolLevel=PPP_LCP_PROTOCOL
    (Link Control Protocol
 level options)
 
  
optionName=PPP_LCP_ADDRCONTROL_COMP:    Size: 8 bit, sizeof(char) - 
Activate/Deactivate address control compression, default 0: Deactivated
optionName=PPP_LCP_PROTO_COMP:    Size: 8 bit, sizeof(char) - 
Value 1: Protocol field compression, default 0: No compression
optionName=PPP_LCP_ACCM:    Size: 32 bit, sizeof(long) - 
Set Async control character map.   Each bit position of the unsigned long value represents the 
corresponding character which should be escaped or not during PPP session.
optionName=PPP_LCP_MAX_RECV_UNIT:    Size: 16 bit, sizeof(int) - 
Maximum receive unit, default 1500 (bytes) 
optionName=PPP_LCP_AUTH_PROTOCOL:    Size: 16 bit, sizeof(int) - 
Authentication method, default 0 (no Auth.), possible  PPP_PAP or PPP_CHAP 
optionName=PPP_LCP_TERM_RETRY :    Size: 8 bit, sizeof(char) - 
Terminate retries, default 3 
optionName=PPP_LCP_CONFIG_RETRY :    Size: 8 bit, sizeof(char) - 
Config retries, default 10 
optionName=PPP_LCP_TIMEOUT:    Size: 8 bit, sizeof(char) - 
Retransmission timeout in seconds, default 3 (seconds) 
optionName=PPP_LCP_MAX_FAILURES :    Size: 8 bit, sizeof(char) - 
LCP maximum failures ,default 5 
 protocolLevel=PPP_IPCP_PROTOCOL
    (IpCp level options)
 
  
optionName=PPP_IPCP_COMP_PROTOCOL:    Size: 16 bit, sizeof(int) - 
Value 1: VJ TCP/IP header compression, default 0: No compression
optionName=PPP_IPCP_DNS_PRI:    Size: 32 bit, sizeof(long)  - 
Specifies the IP addresses of the primary DNS server we will allow the 
remote to use or the primary DNS server we want to use.   If this option is called 
with the value 0 and remotelocalflag==PPP_OPTION_WANT, 
then we allow the connected peer to report their primary DNS server IP.
optionName=PPP_IPCP_DNS_SEC:    Size: 32 bit, sizeof(long) - 
Specifies the IP addresses of the secondary DNS server we will allow the 
remote to use or the secondary DNS server we want to use.   If this option 
is called with the value 0 and remotelocalflag==PPP_OPTION_WANT, 
then we allow the connected peer to report their primary DNS server IP.
optionName=PPP_IPCP_IP_ADDRESS:    Size: 32 bit, sizeof(long) - 
The IP Address the requesting system wishes to use, default 0 (not allowed) 
By default the remote is not allowed to request its IP and/or DNS IP addresses 
If PPPSetOption is called with OPTION_ALLOW, and value 0, the remote will be allowed to set its addresses. 
optionName=PPP_IPCP_VJ_SLOTS :    Size: 1 bit, sizeof(char) - 
Number of VJ slots, default 1 (slot) 
optionName=PPP_IPCP_RETRY:    Size: 1 bit, sizeof(char) - 
IPCP Timeout, retry options, default 10 
optionName=PPP_IPCP_TIMEOUT:    Size: 1 bit, sizeof(char) - 
IPCP timeout seconds, default 1 (second) 
optionName=PPP_IPCP_MAX_FAILURES :    Size: 1 bit, sizeof(char) - 
LCP maximum failures, def. 5 
 If the option PPP_IPCP_PROTOCOL (VJ TCP/IP header compression) is set, 
it can be possible that the FTP server of the IPC@CHIP® is not usable via the PPP interface.
 Related Topics
API function PPP_Client_SetOptions() - Set PPP client options
API function PPP_Server_SetOptions() - Set PPP server options
API function PPP_Client_Get_DNSIP() - Get DNS IP
API function Dev_PPP_Set_Option() - Set PPP option for user device drivers
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.00 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 recv_params
 |  | struct recv_params
{
   char          far      *bufferPtr;        // Store incoming data here
   int                     bufferLength;     // Maximum bytes to store
   int                     flags;            // Blocking, timeout or no wait
   struct sockaddr  far   *fromPtr;          // Only needed for UDP.
   int              far   *fromlengthPtr;    // Only needed for UDP.
   unsigned long           timeout;          // timeout milliseconds
}; | 
 CommentsThis structure is defined in tcpip.h.
 bufferPtr
  
This output parameter specifies the user buffer into which the 
received data will be placed by the system. 
 
 
bufferLength
  
Size of user buffer at bufferPtr, places upper limit 
on bytes transferred. 
 
 
flags
  
Set to one of following constants defined in tcpip.h:
  
MSG_BLOCKING:   Sleep until data comes inMSG_TIMEOUT :   The caller wakes up after timeout or 
if data comes in.   The structure member timeout must be set.
 MSG_DONTWAIT:   Return immediately
 
 
 
fromlengthPtr
    UDP only 
The 16 bit value referenced by this pointer is both an input 
and output parameter, which should be preset to:
 sizeof(struct sockaddr_in)
 
 prior to calling recvfrom().
 
 timeout
  
If flags is set to MSG_TIMEOUT, then 
the maximum number of milliseconds to wait should be specified here. 
The timeout resolution is 100 milliseconds. 
 
 SC1x Comments
fromPtr
    UDP only
  
This is an output parameter.   
The referenced sockaddr 
structure 
is cast to a  sockaddr_in 
structure prior to usage.   
This field will be set by the system inside the 
recvfrom() call to indicate 
the origin of the received UDP data. 
 
 SC1x3/SC2x Comments
fromPtr
    UDP only
  
This is an output parameter.   
The referenced sockaddr 
sockaddr structure 
is cast to a  sockaddr_in structure (AF_INET IPv4 sockets)or to a sockaddr_in6 structure (AF_INET6 IPv6 sockets) 
prior to usage.
 
This field will be set by the system inside the 
recvfrom() call to indicate 
the origin of the received UDP data. 
 
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.00 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 Route_Entry
 |  | typedef struct tag_route_entry{
     unsigned long destIPAddress;  // The IP address to add the route for
     unsigned long destNetmask;    // The netmask for the route
     unsigned long gateway;        // IP address of the gateway for this route
     int hops;                     // Number of routers between this host and route
} Route_Entry; | 
 SC1x3/SC2x CommentsAt the current SC1x3/SC2x CHIP-RTOS version routing functions are existing only for IPv4 protocol.
 Related Topics
API function AddStaticRoute() - Add a route for an interface
API function DelStaticRoute() - Delete a route from an interface
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.00 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 send_params
 |  | struct send_params
{
   char             far   *bufferPtr;        // Pointer to send data
   int                     bufferLength;     // Number of bytes to send
   int                     flags;            // Blocking or no wait
   struct sockaddr  far   *toPtr;            // only needed for UDP
   int              far   *tolengthPtr;      // only needed for UDP
}; | 
 CommentsThis structure is defined in tcpip.h.   The elements are used as follows:
 bufferPtr
  
Pointer to data to be sent. 
 bufferLength
  
Number of bytes to be sent from bufferPtr. 
 flags
  
Set to one of following constants defined in tcpip.h:
  
MSG_BLOCKING:   Sleep until data is transferred into the socket transmit queueMSG_DONTWAIT:   Return immediately after loading bytes into 
available transmit queue space
 
 
tolengthPtr
    UDP only  
The 16 bit value referenced by this pointer must be:   
    sizeof(struct sockaddr_in)
 
 SC1x Comments
toPtr
    UDP only
  
The referenced structure 
is cast to a  sockaddr_in 
structure prior to usage.   
The datagram destination IP address and port number is specified 
here by caller. 
 
 SC1x3/SC2x Comments
toPtr
    UDP only
  
The referenced structure 
is cast to a  sockaddr_in structure (AF_INET IPv4 sockets)or to a  sockaddr_in6  structure (AF_INET6 IPv6 sockets) 
prior to usage.
 The datagram destination IP address and port number is specified 
here by caller.
 
 
 Related Topics
API function opensocket_ext() - Open IPv6 socket
API function opensocket() - Open IPv4 socket
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.00 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 SetSocketOption
 This data structure is defined in the TCPIPAPI.H library header file.
 |  | typedef struct tag_setsockopt
{
    int     protocol_level;      // Protocol level: IP level, TCP level or socket level
    int         optionName;      // Option's name constant
    const char far *optionValue; // Pointer to the option value (type varies)
    int        optionLength;     // Length of option value data
} SetSocketOption;
 // Example usage of SetSocketOption type to set
 // IP Time-to-Live to 69 seconds (or router hops)
 // using C-Library function setsockopt():
 unsigned char time_to_live = 69;
 int error ;
 int socketdescriptor;  // You must initialize this (not shown here)
 SetSocketOption sockopt = {IP_PROTOIP_LEVEL,            // .protocol_level
                            IPO_TTL,                     // .optionName
                      (const char far *)&time_to_live,   // .optionValue
                            sizeof(unsigned char)};      // .optionLength
 setsockopt (socketdescriptor, &sockopt &error) ; | 
 CommentsThe type of data found at the location referenced by the optionValue 
member varies depending on the particular socket 
option that is being dealt with.
 Related Topics
For list of options and sizes see GetSocketOption() 
API function setsockopt() - Set socket options
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.00 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 sockaddr
 |  | struct sockaddr
{
    unsigned char  sa_len;      // Total Length
    unsigned char  sa_family;   // Address Family AF_xxx
    char           sa_data[14]; // up to 14 bytes of protocol specific stuff
}; | 
 CommentsThis generic "one size fits all" BSD structure is treated as a 
sockaddr_in 
structure within the TCP/IP API 
functions.
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.00 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 sockaddr_in
 Socket data structure
 SC1x: |  | struct sockaddr_in
{
   short           sin_family;  // AF_INET
   unsigned short  sin_port;    // 16 bit Port Number in network byte order
   struct  in_addr sin_addr;    // 32 bit netid/hostid in network byte order
   char            sin_zero[8]; // unused
}; | 
 SC1x3/SC2x: |  | struct sockaddr_in
{
  unsigned char   sin_len;     //
  unsigned char   sin_family;  // AF_INET
  unsigned int    sin_port;    // 16bit Port Number in network byte order
  struct  in_addr sin_addr;    // 32bit netid/hostid in network byte order
  char            sin_zero[8]; // unused
}; | 
 CommentsThe sin_family member should be set to AF_INET (=2).The sin_addr member's in_addr 
structure is simply a long IP 
address in 
big endian byte 
order.
 
 The htons() function can be 
used to convert port numbers to network byte order.
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.00 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 sockaddr_in6
 Data structure required by the 4.4BSD socket API used to represent an IPv6 address
 |  | struct sockaddr_in6
{
    unsigned char    sin6_len;       //Length (in bytes) of the sockaddr_in6 structure
    unsigned char    sin6_family;    //Address family, set to AF_INET6
    unsigned short   sin6_port;      //Transport layer port number
    unsigned long    sin6_flowinfo;  //IPv6 packet header Flow Label
    struct in6_addr  sin6_addr;      //128-bit IPv6-formatted address in network byte order.
    unsigned long    sin6_scope_id;  //sin6_scope_id for local scope
                                     // (i.e. link-local, site-local)
                                     // unicast IPv6 addresses
}; | 
 CommentsThe sin6_len is the length in bytes of struct sockaddr_in6.
The sin6_family member should be set to AF_INET6.Note that an IPv4-only IP address can be represented as a 128-bit IPv6-formatted IP Address.
 The socket API refers to this as an IPv4-mapped IPv6 address. 
In this case, sin6_family is set to AF_INET6, even though the structure contains 
an IPv4-only IP Address.
 However, internally the stack treats it as an IPv4-only IP address.
 
The sin6_flowinfo member contains the IPv6 packet header 
Flow Label as the low-order 20  bits and Traffic Class as the next more 
significant 8 bits. The high-order 4 bits of this field are reserved. 
This field allows the application to set the flow label and traffic class 
associated with the socket via a call to bind or connect.
 Related Topics
See in6_addr structure
See sockaddr_storage structure
See sockaddr_in structure
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | n/a | n/a | n/a | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 sockaddr_storage
 Because the sockaddr type isn't big enough to hold an 
IPv6 address, the sockaddr_storage type is provided which 
can hold either an IPv4 or an IPv6 address.
 |  | struct sockaddr_storage
{
    union
    {
        struct sockaddr_in6     ipv6;
        struct sockaddr_in      ipv4;
    } addr;
}; | 
 Related Topics
See sockaddr_in6 structure
See sockaddr_in structure
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | n/a | n/a | n/a | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 SocketInfo
 |  | typedef struct tag_socket_info{
        unsigned int  socIndex;
        unsigned char protocol;        // 6: TCP   17: UDP
        unsigned int  localPort;       // Little endian!
        unsigned long IfIpAddress;     // network byte order
        unsigned int  remotePort;      // Little endian!
        unsigned long remoteIP;        // network byte order
        unsigned char tcpState;
} SocketInfo; | 
 CommentsNote that the localPort and remotePort 
members are in little endian format, while the two IP addresses 
remain in network byte order (big endian).
 
  
Possible TCP socket states:0       CLOSED
 1       LISTEN
 2       SYN_SENT
 3       SYN_RECEIVED
 4       ESTABLISHED
 5       CLOSE_WAIT
 6       FIN_WAIT_1
 7       CLOSING
 8       LAST_ACK
 9       FIN_WAIT_2
 10     TIME_WAIT
 20     INVALID
 
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.10 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 SocketInfoIpv4v6
 |  | typedef struct tag_socket_info{
        unsigned int  socIndex;
        unsigned char protocol;        // 6: TCP   17: UDP
        unsigned int  localPort;       // Little endian!
        struct in6_addr IfIpAddress;   // network byte order
        unsigned int  remotePort;      // Little endian!
        struct in6_addr remoteIP;      // network byte order
        unsigned char tcpState;
} SocketInfo; | 
 CommentsNote that the localPort and remotePort 
members are in little endian format, while the two IP addresses 
remain in network byte order (big endian).
 Possible TCP socket states:
 
  
0       CLOSED1       LISTEN
 2       SYN_SENT
 3       SYN_RECEIVED
 4       ESTABLISHED
 5       CLOSE_WAIT
 6       FIN_WAIT_1
 7       CLOSING
 8       LAST_ACK
 9       FIN_WAIT_2
 10     TIME_WAIT
 20     INVALID
 
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | n/a | n/a | n/a | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 SSL_SESSION_NEW_Entry
 |  | typedef struct tag_ssl_session_new_entry
{
  char far *    certIdentity; // SSL server/client own certificate name
  unsigned int  maxCaches;    // Maximum number of caches for this session
  int           version;      // The SSL version number for this session
                              // Bit0: SSL 3.0
                              // Bit1: TLS 1.0
} SSL_SESSION_NEW_Entry; | 
 CommentsIf the value in maxCaches is zero, there is no cache at all. That means 
there is no connection resumption at all either. Note that each cache entry 
will consume about 100 bytes memory.
 Related Topics
API function SSL_SessionNew() - Open 
a new SSL session
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | n/a | n/a | n/a | V0.91 | V1.00 | 
|---|
 Top of list
 Index page
 
 TcpMib
 |  | typedef struct tagTcpMib
{
   long                tcpRtoAlgorithm;  // retransmission timeout algorithm
   long                tcpRtoMin;        // minimum retransmission timeout (mS)
   long                tcpRtoMax;        // maximum retransmission timeout (mS)
   long                tcpMaxConn;       // maximum TCP connections possible
   unsigned long       tcpActiveOpens;   // number of SYN-SENT -> CLOSED transitions
   unsigned long       tcpPassiveOpens;  // number of SYN-RCVD -> LISTEN transitions
   unsigned long       tcpAttemptFails;  //(SYN-SENT,SYN-RCVD)->CLOSED or SYN-RCVD->LISTEN
   unsigned long       tcpEstabResets;   // (ESTABLISHED,CLOSE-WAIT) -> CLOSED
   unsigned long       tcpCurrEstab;     // number in ESTABLISHED or CLOSE-WAIT state
   unsigned long       tcpInSegs;        // number of segments received
   unsigned long       tcpOutSegs;       // number of segments sent
   unsigned long       tcpRetransSegs;   // number of retransmitted segments
   unsigned long       tcpInErrs;        // number of received errors
   unsigned long       tcpOutRsts;       // number of transmitted resets
} TcpMib; | 
 SC1x CommentsThese structures are only available in SC1x @CHIP-RTOS versions which contain the 
SNMP option.   A SNMP agent is not part of the @CHIP-RTOS.   But if a user is able to implement 
an agent based on the TCP/IP API, they need access to the internal TCP/IP SNMP variables.
 Related Topics
API function Get_SNMP_Data() - Get internal TCP/IP SNMP variables
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.02 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 timeval
 |  | struct timeval {
  long    tv_sec;         // seconds
  long    tv_usec;        // and microseconds
}; | 
 CommentsThis data structure is used to specify the maximum wait time 
for the select() API.   
Set both members to zero for polling.   The @Chip-RTOS timing 
resolution within the select()
 is to one millisecond.   
Nevertheless, the tv_usec
 is specified in microseconds 
here for consistancy with the Berkely Sockets standard.
 Inside the @Chip-RTOS this all is going to be converted to 
a 31 bit number of milliseconds.    So values for tv_sec
 
greater than (2**31)/1000 seconds (= ~24 days) will overflow 
and therefore not provide your requested wait time.
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.22 | V1.22 | V1.22 | V1.11 | V1.00 | 
|---|
 Top of list
 Index page
 
 UdpMib
 |  | typedef struct tagUdpMib
{
    unsigned long       udpInDatagrams; // UDP datagrams delivered to users
    unsigned long       udpNoPorts;     // UDP datagrams to port with no listener
    unsigned long       udpInErrors;    // UDP datagrams unable to be delivered
    unsigned long       udpOutDatagrams;// UDP datagrams sent from this entity
} UdpMib; | 
 SC1x CommentsThese structures are only available in SC1x @CHIP-RTOS versions which contain the 
SNMP option.   A SNMP agent is not part of the @CHIP-RTOS.   But if a user is able to implement 
an agent based on the TCP/IP API, they need access to the internal TCP/IP SNMP variables.
 Related Topics
API function Get_SNMP_Data() - Get internal TCP/IP SNMP variables
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.02 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 UserEthDhcp_Entry
 |  | typedef struct tag_UserDhcpEthEntry
{
    unsigned long   BootSIpAddress;      // BOOT Server (TFTP server), not supported
    unsigned long   Dns1ServerIpAddress; // Domain name server
    unsigned long   Dns2ServerIpAddress; // Second domain name server
    unsigned long   Yiaddr;              // Our (leased) IP address
    unsigned long   NetMask;             // Our subnet mask
    unsigned long   DefRouter;           // Default router
    unsigned long   DhcpServerId;        // DHCP selected server IP address
    unsigned long   internal1;           // Internal use only
    unsigned long   internal2;           // Internal use only
    unsigned long   DhcpLeaseTime;       // DHCP Address lease time in milliseconds
    unsigned long   internal3;           // internal use only
    unsigned long   internal4;           // internal use only
    unsigned char   DomainName[64];      // Domain name
    unsigned char   BootSname[64];       // TFTP server name, not used
    unsigned char   BootFileName[128];   // Boot file name (for TFTP download),
                                         //   not supported.
    unsigned short  BootFileSize;        // Boot file size in 512 Bytes blocks
                                         //    (for TFTP download).
    unsigned short  internal5;           // internal use only
} UserEthDhcp_Entry; | 
 CommentsMembers of this structure hold the DHCP configuration data if the IPC@CHIP® is configured 
by a DHCP server.
 This is read only information!
 Related Topics
API function Get_DHCP_Status() - 
Get DHCP status of the internal Ethernet interface of the IPC@CHIP®
API function Dev_Wait_DHCP_Complete() - 
Get DHCP status for a user Ethernet interface
 Supported since or modified in @CHIP-RTOS version
 
 | SC12 | SC13 | SC11 | SC1x3 | SC2x | 
|---|
 
 | V1.00 | V1.00 | V1.00 | V0.90 | V1.00 | 
|---|
 Top of list
 Index page
 
 
 End of document
 
 
 |