NDK Stack Documentation: Data Structures

  • Main Page
  • Data Structures
  • Files
  • Data Fields

NDK Stack Documentation Data Structures

Here are the data structures with brief descriptions:
_child | The structure describes the data instance for daemon child task
_hostent | The structure describes the Host Name - IP Address record
_IntSetup | The structure describes the interrupt setup object defined by the interrupt management wrapper in OS Abstraction Layer
_lli_info | This structure describes the LLI/ARP Information Object
_RAWETHSOCK_PCB | This structure is used to maintain the list of all the registered raw ethernet socket objects
_rawethstat | The structure describes the RAW Ethernet Statistics block
_rawstat | The structure describes the RAW Statistics block
_SOCKRAWETH | The structure describes the Raw Ethernet Sock Object Structure
_tcpstat | The structure describes the TCP Statistics Block
_udpstat | The structure describes the UDP Statistics block
BIND6_ENTRY | The structure describes the BIND6 Object
DREC | The structure describes the Daemon Entry
FRAG6Q | The structure describes the Fragment Reassembly Queue
ICMPV6STATS | The structure describes the ICMPv6 Statistics Block
IPV6_DEV_RECORD | The structure describes the IPv6 Device Record
IPV6STATS | The structure describes the IPv6 Statistics Block
JUMBO_MEMORYBLOCK | This structure defines the Jumbo memory block structure
JUMBO_PITENTRY | This structure defines the Page Information entry
LLI6_ENTRY | The structure describes the LLI6 Entry
RT6_ENTRY | The structure describes the ROUTE6 Entry
SOCK6 | The structure describes the IPv6 Socket data structure
SOCK6PCB | The structure describes the IPv6 Socket Protocol specific properties
Copyright 2009, Texas Instruments Incorporated


NDK Stack Documentation: _child Struct Reference

  • Data Fields

_child Struct Reference

The structure describes the data instance for daemon child task. More...

Collaboration diagram for _child:

[legend]

Data Fields

_child * pPrev
Pointer to previous child or NULL.
_child * pNext
Pointer to next child or NULL.
HANDLE | hTask
Handle to the child task.
SOCKET | s
Socket on which the child task is operating.
int | closeSock
Flag which determine if the 'child' socket is to be closed or not.

Detailed Description

The structure describes the data instance for daemon child task.

The documentation for this struct was generated from the following file:
  • src/nettools/daemon/daemon.c


NDK Stack Documentation: _hostent Struct Reference

  • Data Fields

_hostent Struct Reference

The structure describes the Host Name - IP Address record. More...

#include <dnsif.h>

Data Fields

char * | h_name
This is the official name / Fully Qualified Domain Name (FQDN) of the host.
int | h_addrtype
This indicates the address family of the IP address that maps to the given hostname. The values it takes are AF_INET (v4) / AF_INET6 (v6).
int | h_length
This indicates the length (in bytes) of the IP address that follows. For IPv4 address it is set to 4, and for IPv6 address set to 16 bytes.
int | h_addrcnt
This is the number of IP addresses returned for the given hostname.
IPN | h_addr [MAXIPADDR]
List of upto MAXIPADDR IPv4 addresses (Network format) that map to the given hostname.
char * | h_addr_list [MAXIPADDR]
List of upto MAXIPADDR IPv4/IPv6 addresses that map to given hostname.

Detailed Description

The structure describes the Host Name - IP Address record.

The HOSTENT structure holds information such as IPv4/v6 address, host name mappings for a given host. It is used by the DNS resolver in conveying such HostName - IP Address mappings to a user application.

The documentation for this struct was generated from the following file:
  • inc/nettools/inc/dnsif.h


NDK Stack Documentation: _IntSetup Struct Reference

  • Data Fields

_IntSetup Struct Reference

The structure describes the interrupt setup object defined by the interrupt management wrapper in OS Abstraction Layer. More...

#include <osif.h>

Data Fields

Uint8 | intVectId
HWI Object number to use for setting up this system event. The valid values for this range between 4 - 15 (both inclusive).
Uint8 | sysEvtId [MAX_NUM_SYSEVENTS]
System Event number(s) for which the interrupts need to be setup. The valid values for this range between 4 - 127 (both inclusive).
Uint8 | sysEvtCount
Number of system events that need to be mapped to a given DSP interrupt number and be serviced by a specified Interrupt Service Routine (ISR). Valid values for this range between 1 - 128.
void(* | pCallbackFxn )(void *pCallbackArg)
The callback function to be triggered when the interrupt occurs, i.e. the ISR. This should not be set to NULL for a successful interrupt setup.
void * | pCallbackArg
The arguments that need to be passed to the ISR. Can be NULL.
Uint8 | bEnable
Flag to indicate whether to enable/disable the interrupt by default. This flag is valid only when setting up combined interrupts, i.e., multiple system events mapped to a single DSP interrupt number.

Detailed Description

The structure describes the interrupt setup object defined by the interrupt management wrapper in OS Abstraction Layer.

This structure can be used by a driver/such in setting up interrupts using the underlying OS (BIOS) constructs without having to know the details of the OS specific calls. All calls to the interrupt management wrapper require a handle to the structure described below.

The documentation for this struct was generated from the following file:
  • inc/os/osif.h


NDK Stack Documentation: _lli_info Struct Reference

  • Data Fields

_lli_info Struct Reference

This structure describes the LLI/ARP Information Object. More...

#include <lliif.h>

Data Fields

LIST_NODE | Links
Links to other LLI_INFO Objects.
UINT8 | IsStatic
Boolean Flag to indicate whether this LLI entry is a static / dynamic entry.
IPN | IPAddr
The 4 byte IPv4 address associated with this LLI/ARP Entry.
UINT8 | MacAddr [6]
The 6 byte Ethernet MAC address associated with this LLI/ARP Entry.

Detailed Description

This structure describes the LLI/ARP Information Object.

This data structure is used by the LLI module to populate LLI/ARP Entry information contained in the NDK Kernel in a simple, user-friendly way to the application.

The documentation for this struct was generated from the following file:
  • inc/stack/inc/lliif.h


NDK Stack Documentation: _RAWETHSOCK_PCB Struct Reference

  • Data Fields

_RAWETHSOCK_PCB Struct Reference

This structure is used to maintain the list of all the registered raw ethernet socket objects. More...

Collaboration diagram for _RAWETHSOCK_PCB:

[legend]

Data Fields

SOCKRAWETH * sockets
List of Raw eth socket objects.

Detailed Description

This structure is used to maintain the list of all the registered raw ethernet socket objects.

The documentation for this struct was generated from the following file:
  • src/stack/rawethsock/rawethsock_pcb.c


NDK Stack Documentation: _rawethstat Struct Reference

  • Data Fields

_rawethstat Struct Reference

The structure describes the RAW Ethernet Statistics block. More...

#include <rawethif.h>

Data Fields

UINT32 | RcvTotal
Total Raw Eth packets received by the Raw Eth Channel Mgmt Module.
UINT32 | RcvDrops
Number of Raw Eth packets dropped by this module because of errors.
UINT32 | SndTotal
Total packets sent successfully by Raw Eth Module.
UINT32 | SndNoPacket
Number of Sends failed due to memory allocation errors.

Detailed Description

The structure describes the RAW Ethernet Statistics block.

This structure is used to hold various stats and counters by the Raw ethernet channel management module.

The documentation for this struct was generated from the following file:
  • inc/stack/inc/rawethif.h


NDK Stack Documentation: _rawstat Struct Reference

  • Data Fields

_rawstat Struct Reference

The structure describes the RAW Statistics block. More...

#include <rawif.h>

Data Fields

UINT32 | RcvTotal
Total packets received.
UINT32 | RcvFull
Unable to take more data.
UINT32 | SndTotal
Total packets sent.
UINT32 | SndNoPacket
Unable to allocate packet.

Detailed Description

The structure describes the RAW Statistics block.

This structure is used to hold various stats and counters by the RAW module. A separate copy of this stats is maintained by the IPv4 and IPv6 stacks.

The documentation for this struct was generated from the following file:
  • inc/stack/inc/rawif.h


NDK Stack Documentation: _SOCKRAWETH Struct Reference

  • Data Fields

_SOCKRAWETH Struct Reference

The structure describes the Raw Ethernet Sock Object Structure. More...

#include <sockif.h>

Collaboration diagram for _SOCKRAWETH:

[legend]

Data Fields

FILEDESC | fd
File descriptor header.
UINT32 | Family
Address family of the socket (AF_RAWETH).
UINT32 | SockType
Socket Type (SOCK_RAWETH).
UINT32 | Protocol
Layer3 Protocol (can by any custom L3 types).
UINT16 | SockPriority
Socket Priority.
UINT32 | SockProt
Socket Protocol Handler (SOCKPROT_RAWETH).
UINT32 | StateFlags
Socket State flags (SS_...). Defined and used by NDK core stack internally.
_SOCKRAWETH * pPrev
Pointer to next socket in protocol list.
_SOCKRAWETH * pNext
Pointer to previous socket in protocol list.
HANDLE | hIF
Handle to Interface on which packets need to be Rxed or Txed.
INT32 | ErrorPending
Error returned on socket call.
UINT32 | RxTimeout
Receive Timeout for the socket.
UINT32 | RxBufSize
Receive buffer size.
UINT32 | TxBufSize
Transmit buffer size.
HANDLE | hSBRx
Handle to Receive buffer of the socket.
HANDLE | hSBTx
Handle to Transmit buffer of the socket.
TimestampFxn | pTimestampFxn
Handle to Timestamp function.

Detailed Description

The structure describes the Raw Ethernet Sock Object Structure.

This data structure identifies a socket used for communication over Raw Ethernet Sockets.

The documentation for this struct was generated from the following file:
  • inc/stack/inc/sockif.h


NDK Stack Documentation: _tcpstat Struct Reference

  • Data Fields

_tcpstat Struct Reference

The structure describes the TCP Statistics Block. More...

#include <tcpif.h>

Data Fields

UINT32 | ConnAttempt
Number of Connection attempts.
UINT32 | ConnDrops
Number of dropped connection attempts.
UINT32 | Accepts
Number of connections accepted.
UINT32 | Drops
Number of connections dropped.
UINT32 | PersistTimeout
Number of times "Persist timer" expired.
UINT32 | KeepTimeout
Number of times "Keep"/"Connect" timer expired.
UINT32 | RexmtTimeout
Number of Retransmission timeouts.
UINT32 | KeepProbe
Number of Keep probes sent.
UINT32 | KeepDrops
Number of connections dropped in keep.
UINT32 | TimeoutDrops
Number of connections dropped due to Retransmission timeout.
UINT32 | Connects
Number of connections established.
UINT32 | RttUpdated
Number of times RTT timer was successful.
UINT32 | DelAck
Number of Delayed ACKs sent out.
UINT32 | SndTotal
Number of TCP packets sent out.
UINT32 | SndProbe
Number of TCP window probes sent.
UINT32 | SndPack
Number of data packets sent out.
UINT32 | SndByte
Number of data bytes sent out.
UINT32 | SndRexmitPack
Number of data packets retransmitted.
UINT32 | SndRexmitByte
Number of data bytes retransmitted.
UINT32 | SndAcks
Number of ACK-only packets sent out.
UINT32 | SndCtrl
Number of TCP Control (SYN/FIN/RST) packets sent.
UINT32 | SndUrg
Number of TCP packets with "URG" flag set.
UINT32 | SndWinUp
Number of window update-only packets sent.
UINT32 | SndNoBufs
Number of "out of buffer" errors encountered during TCP transmission.
UINT32 | SegsTimed
segs where we tried to get rtt
UINT32 | RcvTotal
Total packets received.
UINT32 | RcvShort
Number of packets received that were too short.
UINT32 | RcvHdrSize
Number of packets received with bad TCP header size.
UINT32 | RcvBadSum
Number of packets received with checksum errors.
UINT32 | RcvDupPack
Number of duplicate-only packets received.
UINT32 | RcvDupByte
Number of duplicate-only bytes received.
UINT32 | RcvPartDupPack
Number of partial duplicate packets received.
UINT32 | RcvPartDupByte
Number of duplicate bytes from partial duplicate packets received.
UINT32 | RcvAfterClose
Number of packets received after "close".
UINT32 | RcvAfterWinPack
Number of packets with data past our window.
UINT32 | RcvAfterWinByte
Number of bytes received past our window.
UINT32 | RcvWinProbe
Number of Window probe packets recieved.
UINT32 | RcvDupAck
Number of Duplicate ACK packets recieved.
UINT32 | RcvAckTooMuch
Number of Duplicate ACK packets recieved for unsent data.
UINT32 | RcvAckPack
Number of ACK packets recieved.
UINT32 | RcvAckByte
Number of bytes acked by ACK packets recieved.
UINT32 | RcvWinUpd
Number of Window update packets recieved.
UINT32 | RcvPack
Number of packets received in sequence.
UINT32 | RcvByte
Number of bytes received in sequence.
UINT32 | RcvOOPack
Number of packets received out of sequence.
UINT32 | RcvOOByte
Number of bytes received out of sequence.

Detailed Description

The structure describes the TCP Statistics Block.

This structure holds the TCP related statistics and counters.

The documentation for this struct was generated from the following file:
  • inc/stack/inc/tcpif.h


NDK Stack Documentation: _udpstat Struct Reference

  • Data Fields

_udpstat Struct Reference

The structure describes the UDP Statistics block. More...

#include <udpif.h>

Data Fields

UINT32 | RcvTotal
Total UDP datagrams received.
UINT32 | RcvShort
Number UDP packets received with length shorter than UDP header length.
UINT32 | RcvBadLen
Number of UDP packets received with length larger than the packet size.
UINT32 | RcvBadSum
Number of UDP packets received with checksum errs.
UINT32 | RcvFull
Number of UDP Packets dropped because of the receiver socket queue being full.
UINT32 | RcvNoPort
Number of UDP packets received that are destined to a port on the host on which there exists no listening socket/application.
UINT32 | RcvNoPortB
Number of UDP multicast/broadcast packets received that are destined to a port on the host stack on which there exists no listening socket/application.
UINT32 | SndTotal
Total UDP packets sent.
UINT32 | SndNoPacket
Packets dropped because of memory allocation problems.

Detailed Description

The structure describes the UDP Statistics block.

This structure is used to hold various stats and counters by the UDP module. A separate copy of this stats is maintained by the IPv4 and IPv6 stacks.

The documentation for this struct was generated from the following file:
  • inc/stack/inc/udpif.h


NDK Stack Documentation: BIND6_ENTRY Struct Reference

  • Data Fields

BIND6_ENTRY Struct Reference

The structure describes the BIND6 Object. More...

#include <bind6if.h>

Data Fields

LIST_NODE | links
Links to other BIND6 Objects.
UINT32 | flags
Flags associated with the BIND6 Object.
  • TENTATIVE : Address is not assigned and the DAD process is executing on it
  • DEPRECATED: Address Lifetime has expired and should not be used.
  • ANYCAST : Address is an ANYCAST address and DAD should -not- be run on it.

NETIF_DEVICE * | ptr_device
Network Interface Device on which the BIND6 object resides.
HANDLE | hRtNet
Handle of the networking (CLONING) route which is associated with the BIND6 Object.
HANDLE | hRtHost
Handle of the HOST route which is associated with the BIND6 Object.
IP6N | IPHost
The IPv6 Address associated with the BIND6 Object.
IP6N | IPNet
The IPv6 Network address associated with the BIND6 Object.
IP6N | IPMask
The IPv6 Network Mask associated with the BIND6 Object.
int | ValidLifetime
The Valid Lifetime of the BIND6 Object for which the address and associated bindings will remain valid. All Link Local Bindings remain vaid forever. Valid Lifetime is stored as an "absolute" value.
int | PreferredLifetime
The Preferred Lifetime of the BIND6 Object for which the address and associated bindings will remain valid. All Link Local Bindings remain vaid forever. Preferred Lifetime is stored as an "absolute" value.
UINT16 | NumProbes
The Number of probes sent out on this address for the DAD state machine.

Detailed Description

The structure describes the BIND6 Object.

There exists a BIND6 Object for each IPv6 Address which has been assigned to a network interface. If there are multiple IPv6 addresses assigned to the same network interface then each address is associated with a BIND6 object.

The documentation for this struct was generated from the following file:
  • inc/stack/inc/bind6if.h


NDK Stack Documentation: DREC Struct Reference

  • Data Fields

DREC Struct Reference

The structure describes the Daemon Entry. More...

Collaboration diagram for DREC:

[legend]

Data Fields

uint | Type
Type of socket. For V4 this could be SOCK_STREAM, SOCK_STREAMNC, SOCK_DGRAM But for V6 this can only be SOCK_STREAM and SOCK_DGRAM.
IPN | LocalAddress
Local V4 Address to which the socket is bound to For most cases this is passed as INADDR_ANY.
IP6N | LocalV6Address
Local V6 address to which the socket is bound to For most cases this is passed as IPV6_UNSPECIFIED_ADDRESS.
uint | LocalPort
Local Port to which the daemon will be bound to This cannot be NULL.
int(* | pCb )(SOCKET, UINT32)
Call back function which is invoked when data is received on the registered daemon.
uint | Priority
Priority of the child task.
uint | StackSize
Stack size of the child task.
UINT32 | Argument
Argument which is to passed to the call back routine.
uint | MaxSpawn
Maximum number of tasks which can be spawned to handle the daemon.
SOCKET | s
Internal socket created by the daemon for use.
uint | TasksSpawned
Number of tasks spawned to handle the daemon.
_child * pC
Pointer to children.

Detailed Description

The structure describes the Daemon Entry.

The documentation for this struct was generated from the following file:
  • src/nettools/daemon/daemon.c


NDK Stack Documentation: FRAG6Q Struct Reference

  • Data Fields

FRAG6Q Struct Reference

The structure describes the Fragment Reassembly Queue. More...

Data Fields

LIST_NODE | Links
Links to other FRAG6Q Objects.
UINT32 | Type
Type of the Fragment.
UINT32 | Id
Unique Identification number for fragments in this queue.
IP6N | Srcaddr
IPv6 Source Address of the fragments in this queue.
IP6N | Dstaddr
IPv6 Destination Address of the fragments in this queue.
PBM_Pkt * | Fragments
Sorted list of all the fragments in this queue. The fragments are sorted in increasing order of their offsets.
UINT32 | Timeout
Maximum timeout for reassembly of fragments in this queue. Its measured from the time instance queue is created. Beyond this time, all fragments in the queue are discarded and fragment reassembly for this packet is aborted.
UINT32 | NextHdrOffset
Next Header Offset of the last extension header in the unfragmentable part of Fragment 0 of this queue.
UINT8 | NextHdrValue
Next Header value from the Fragment 0 of this queue.

Detailed Description

The structure describes the Fragment Reassembly Queue.

This data structure identifies all the IPv6 fragment packets awaiting reassembly for a given Fragment ID, IPv6 Source Address and IPV6 Destination Address.

The documentation for this struct was generated from the following file:
  • src/stack/ipv6/ipv6_frag.c


NDK Stack Documentation: ICMPV6STATS Struct Reference

  • Data Fields

ICMPV6STATS Struct Reference

The structure describes the ICMPv6 Statistics Block. More...

#include <icmp6if.h>

Data Fields

UINT32 | InMsgs
Packets received by ICMPv6 module.
UINT32 | InErrors
Packets droppped because of checksum error or message validation error.
UINT32 | OutMsgs
Packets transmitted from ICMPv6.
UINT32 | OutErrors
Packets droppped because of any errors.
UINT32 | DADSuccess
Number of DAD Successes.
UINT32 | DADFailures
Number of DAD Failures.

Detailed Description

The structure describes the ICMPv6 Statistics Block.

This structure is used to hold ICMPv6 stats. This structure is defined as per MIBs described for ICMP in RFC 4293.

The documentation for this struct was generated from the following file:
  • inc/stack/inc/icmp6if.h


NDK Stack Documentation: IPV6_DEV_RECORD Struct Reference

  • Data Fields

IPV6_DEV_RECORD Struct Reference

The structure describes the IPv6 Device Record. More...

#include <ip6if.h>

Data Fields

UINT32 | EUI64 [2]
This is the 64 bit EUI Identifier.
HANDLE | hLinkLocalBind
This is the handle to the Link Local BIND Object.
HANDLE | hIF
This is the handle to the NIMU Network Object.
HANDLE | hLinkLoopbackRoute
This is the handle to Link Loopback route.
UINT8 | CurHopLimit
This is the hop limit to be used when sending UNICAST packets.
UINT16 | LinkMTU
This is the Link MTU associated with the device.
UINT32 | BaseReachableTime
This is the base Value used for computing the random value.
UINT32 | ReachableTime
This is the time for which a neighbour is considered reachable.
UINT32 | RetransTimer
This is the time between retransmissions of NS messages.
UINT8 | ManagedFlag
This is the Managed Flag copied from the RA Message.
UINT8 | OtherConfigFlag
This is the Other Config Flag copied from the RA Message.
void(* | DADStatus )(IP6N Address, UINT16 dev_index, UINT8 Status)
This is DAD Status call back function which is invoked after the DAD State machine has been executed and can be used to notify application developers on the result.

Detailed Description

The structure describes the IPv6 Device Record.

The IPv6 Device record is maintained per each NIMU Network Interface Object in the system. If this record is NULL then IPv6 has not been instantiated on the interface and so the interface will not be able to receive or transmit IPv6 packets. The structure is used to store IPV6 host specific parameters on a per interface basis.

The documentation for this struct was generated from the following file:
  • inc/stack/inc/ip6if.h


NDK Stack Documentation: IPV6STATS Struct Reference

  • Data Fields

IPV6STATS Struct Reference

The structure describes the IPv6 Statistics Block. More...

#include <ip6if.h>

Data Fields

UINT32 | InReceives
Total number of packets received.
UINT32 | InHdrErrors
Packets dropped because of header errors.
UINT32 | InMcastPkts
Number of multicast packets received.
UINT32 | InTruncatedPkts
Number of truncated packets received.
UINT32 | InForwErrors
Number of packets dropped because we had to forward.
UINT32 | InExtnHdrErrors
Packets dropped because extension header parse failed.
UINT32 | InReasmReqds
Number of fragments awaiting reassembly.
UINT32 | InReasmFails
Number of fragment reassembly failures/timeouts.
UINT32 | InReasmOKs
Number of successful reassemblies.
UINT32 | InUnknownProtos
Packets dropped because the L4 Proto was not supported.
UINT32 | InDelivers
Packets successfully delivered to host stack.
UINT32 | OutRequests
Total number of packets transmit requests from host stack.
UINT32 | OutNoRoutes
Packets dropped because of no route to destination.
UINT32 | OutFragReqds
Number of Packets on Tx path that need to be fragmented in order to be transmitted successfully.
UINT32 | OutFragFails
Number of Packets on Tx path that need to be fragmented but couldnt be fragmented because of some error.
UINT32 | OutFragOKs
Number of Packets on Tx path that were fragmented successfully.
UINT32 | OutFragCreates
Number of Packets generated on Tx path due to fragmentation.
UINT32 | OutMcastPkts
Number of Multicast packets sent out by the host IPv6 stack.
UINT32 | OutDiscards
Number of packets discarded because of errors on Tx path.
UINT32 | OutTransmits
Number of packets successfully transmitted by the host IPv6 stack.

Detailed Description

The structure describes the IPv6 Statistics Block.

This structure is used to hold various packet stats for receive and transmit paths of the core IPv6 module. The stats maintained in this structure are defined as per IP MIBs defined in RFC 4293.

The documentation for this struct was generated from the following file:
  • inc/stack/inc/ip6if.h


NDK Stack Documentation: JUMBO_MEMORYBLOCK Struct Reference

  • Data Fields

JUMBO_MEMORYBLOCK Struct Reference

This structure defines the Jumbo memory block structure. More...

Data Fields

uint | Flags
Flags to indicate the memory block status.
UINT8 | bData [1]
Pointer to the memory block.

Detailed Description

This structure defines the Jumbo memory block structure.

This structure signifies each memory block allocation done using the jumbo packet buffer manager.

The documentation for this struct was generated from the following file:
  • src/os/jumbo_pbm.c


NDK Stack Documentation: JUMBO_PITENTRY Struct Reference

  • Data Fields

JUMBO_PITENTRY Struct Reference

This structure defines the Page Information entry. More...

Data Fields

UINT8 * | pPageStart
Pointer to the first page / partition.
uint | PageSize
Size of the page.
uint | BlockSize
Block size.
uint | BlockSizeIdx
Index of the block size in the block sizes array.
uint | BlocksPerPage
Number of blocks per page.
uint | AllocCount
Number of pages allocated.
uint | IdxFreeCheck
Index to the first possibly free page to start searching for next free slot.

Detailed Description

This structure defines the Page Information entry.

This structure holds details of the Pages within a memory block.

The documentation for this struct was generated from the following file:
  • src/os/jumbo_pbm.c


NDK Stack Documentation: LLI6_ENTRY Struct Reference

  • Data Fields

LLI6_ENTRY Struct Reference

The structure describes the LLI6 Entry. More...

#include <lli6if.h>

Data Fields

LIST_NODE | links
Links to other LLI6 Objects.
UINT32 | RefCount
Reference Counter.
UINT8 | IsRouter
The IsRouter Flag is maintained per NEIGH Entry.
NETIF_DEVICE * | ptr_device
Device on which the LLI6 Entry exists.
PBM_Pkt * | pPkt
Packet awaiting resolution.
UINT8 | MacAddr [6]
MAC Address of the Entry.
UINT32 | status
Neighbor Status as per the Neighbor Unreachability Detection.
IP6N | SrcAddr
Source Address to be used while sending Neighbor Solicitations.
IP6N | TargetAddr
Target Address to be used while sending Neighbor Solicitations.
UINT16 | NumProbes
Number of Neighbor Solicitation Probes that have been sent out.
UINT32 | LastSendNS
Timestamp when the Last NS was sent out.
UINT32 | LastReachTS
Timestamp of the Last Reachability Confirmation.

Detailed Description

The structure describes the LLI6 Entry.

This is the Neighbor Cache which maps the unicast IPv6 address to the Link Layer Address. The structure also contains the necessary information to execute the Neighbor Unreachability Detection Algorithm.

Since interfaces can have multiple IPv6 addresses. It is possible that there can be multiple Unicast IPv6 addresses being mapped to a single LLI6 entry.

The documentation for this struct was generated from the following file:
  • inc/stack/inc/lli6if.h


NDK Stack Documentation: RT6_ENTRY Struct Reference

  • Data Fields

RT6_ENTRY Struct Reference

The structure describes the ROUTE6 Entry. More...

#include <route6if.h>

Data Fields

LIST_NODE | links
Links to the the next entry.
UINT32 | Flags
Routing Flag Entries. This can be set to Host, Network or Gateway Routes.
UINT32 | RefCount
Reference Counter.
UINT32 | dwTimeout
Expiration time in SECONDS.
IP6N | NetworkAddr
Network Address.
IP6N | IPAddr
IP Address.
IP6N | IPMask
IP Mask.
IP6N | NextHop
Next Hop IP Address.
UINT32 | ProtMTU
Protocol MTU for this route.
NETIF_DEVICE * | ptr_device
Pointer to the network interface on which the route resides.
HANDLE | hLLI6
HANDLE to the LLI6 Entry.

Detailed Description

The structure describes the ROUTE6 Entry.

There exists an entry for each of the following:-

  • Every Network (Prefix List) to which the box is connected These routes are known as CLONING Routes since they can spawn multiple Host Routes (b) below. These routes do -not- have an LLI6 Entry since they map to a network route which is ON LINK

  • Every Host on the network to which packets have been sent These routes are typically CLONED routes. These routes always have a matching LLI6 Entry since they this maps a HOST IPv6 Address to an LLI6 Entry.

  • Default Routes (Gateway Routes) These routing entries exist for default gateways; the 'IPAddr' in this case is :: and so is the 'IPMask'. The 'NextHop' is the Address of the GATEWAY. These routes are always added to the end of the routing table since they will always match. These routes always have an LLI6 Entry.

Thus currently the Flags supported here are:-

  • FLG_RTE_CLONING This identifies (a) above.
  • FLG_RTE_HOST This identifies (b) above.
  • FLG_RTE_GATEWAY This identifies (c) above.

The documentation for this struct was generated from the following file:
  • inc/stack/inc/route6if.h


NDK Stack Documentation: SOCK6 Struct Reference

  • Data Fields

SOCK6 Struct Reference

The structure describes the IPv6 Socket data structure. More...

#include <sockif.h>

Collaboration diagram for SOCK6:

[legend]

Data Fields

FILEDESC | fd
File descriptor header.
UINT8 | Family
Address family of the socket (AF_INET6).
UINT8 | SockType
Socket Type (SOCK_STREAM/SOCK_DGRAM/SOCK_RAW).
UINT8 | Protocol
IP Protocol (TCP/UDP/ICMPV6 etc).
UINT32 | FlowLabel
Flow label associated with the socket.
UINT8 | HopLimit
Hop Limit for Unicast packets.
UINT32 | ScopeId
Scope ID associated with the socket.
UINT16 | SockPriority
Socket Priority.
UINT32 | SockProt
Socket Protocol Handler (SOCKPROT_NONE/SOCKPROT_TCP/ SOCKPROT_UDP/SOCKPROT_RAW).
uint | OptionFlags
Socket Option flags (SO_...) as defined in socket.h.
uint | StateFlags
Socket State flags (SS_...). Defined and used by NDK core stack internally.
UINT32 | dwLingerTime
Time used when SO_LINGER set.
SOCK6 * pProtNext
Pointer to next socket in protocol list.
SOCK6 * pProtPrev
Pointer to previous socket in protocol list.
IP6N | FIP
Foreign Host's IPv6 Address.
UINT16 | FPort
Foreign Host's Port.
IP6N | LIP
Local IPv6 Address (NULL for wildcard).
UINT16 | LPort
Local Port to which socket is bound (NULL if not bound).
IP6N | BIP
IPv6 Address to which this socket is bound (valid for DGRAM sockets).
UINT16 | BPort
Port to which this socket is bound (valid for DGRAM sockets).
HANDLE | hTP
Handle to Protocol specific data.
HANDLE | hRoute6
Handle to the cached V6 Route.
HANDLE | hIFTx
Handle to default Interface for transmit.
SOCK6 * pParent
Handle to the parent socket.
SOCK6 * pPrevQ
Previous Socket in Pending/ready queue.
SOCK6 * pPending
Pending connection sockets list.
SOCK6 * pReady
Ready/connected sockets list.
UINT32 | ConnMax
Maximum allowed pending/ready connections on this socket.
UINT32 | ConnTotal
Total number of current connections on socket.
int | ErrorPending
Error returned on socket call.
INT32 | OOBMark
Out of band info mark.
uint | OOBData
Out of band info data.
UINT32 | RxTimeout
Receive Timeout for stream sockets.
UINT32 | TxTimeout
Transmit Timeout for stream sockets.
UINT32 | RxBufSize
Receive buffer size.
UINT32 | TxBufSize
Transmit buffer size.
HANDLE | hSBRx
Handle to Receive buffer of the socket.
HANDLE | hSBTx
Handle to Transmit buffer of the socket.

Detailed Description

The structure describes the IPv6 Socket data structure.

This data structure identifies a socket used for communication over IPv6.

The documentation for this struct was generated from the following file:
  • inc/stack/inc/sockif.h


NDK Stack Documentation: SOCK6PCB Struct Reference

  • Data Fields

SOCK6PCB Struct Reference

The structure describes the IPv6 Socket Protocol specific properties. More...

#include <sockif.h>

Data Fields

IP6N | IPAddrLocal
Local IPv6 Address.
UINT16 | PortLocal
Local IP Port.
IP6N | IPAddrForeign
Foreign host's IPv6 Address.
UINT16 | PortForeign
Foreign IP Port.
UINT32 | State
Socket state (protocol dependent).

Detailed Description

The structure describes the IPv6 Socket Protocol specific properties.

The documentation for this struct was generated from the following file:
  • inc/stack/inc/sockif.h


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- a -

  • Accepts : _tcpstat
  • AllocCount : JUMBO_PITENTRY
  • Argument : DREC


NDK Stack Documentation: File Index

  • File List
  • Globals

NDK Stack Documentation File List

Here is a list of all documented files with brief descriptions:
inc/socket.h | Common structures and definitions for Socket layer
inc/stack/inc/bind6if.h | Common structures and definitions used by the BIND6 Object
inc/stack/inc/icmp6if.h | Common structures and definitions for ICMPv6
inc/stack/inc/ip6if.h | Common structures and definitions for IPv6
inc/stack/inc/lli6if.h | Extern Functions exported by the LLI6 Module
inc/stack/inc/mldif.h | Common structures and definitions used by the MLDv6
inc/stack/inc/route6if.h | Common structures and definitions used for the ROUTE6 Module
src/nettools/daemon/daemon.c | This file implements a simple network daemon
src/nettools/tftp/tftp6.c | The file implements the TFTP protocol over IPv6
src/os/intmgmt.c | Interrupt Management wrapper written to abstract out OS (BIOS) specific interrupt management calls
src/os/jumbo_pbm.c | Jumbo Packet Buffer Manager. Ths file has functions which handle dynamic memory management (heap allocations) for packet buffer sizes greater than 3K. These functions are typically called for buffer management of jumbo frames greater than 3K size
src/stack/bind6/bind6.c | The file implements the BIND6 Module. The BIND6 Module is responsible for keeping track of all LOCAL IPv6 Addresses which have been assigned to the interfaces
src/stack/fdt/socket.c | This file handles core BSD style socket calls and pipes
src/stack/icmpv6/icmpv6.c | The file has functions which handle the ICMPv6 Protocol
src/stack/icmpv6/icmpv6_ndisc.c | The file has functions which handle the Neighbour Discovery process as defined in the ICMPv6 Protocol
src/stack/icmpv6/icmpv6in.c | The file handles the reception of ICMPv6 Packets
src/stack/icmpv6/icmpv6out.c | The file handles the transmission of ICMPv6 Packets
src/stack/igmp/igmp.c | IGMP Stack Implementation
src/stack/ipv6/ipv6.c | The file has functions which handle the IPv6 Protocol
src/stack/ipv6/ipv6.h | The file handle carries all definitions for functions and data structures common to core IPv6 internal processing
src/stack/ipv6/ipv6_exthdrs.c | The file handles the IPv6 extension header processing
src/stack/ipv6/ipv6_frag.c | The file handles the IPv6 Fragment Reassembly processing
src/stack/ipv6/ipv6in.c | The file handles the reception of IPv6 Packets
src/stack/ipv6/ipv6out.c | The file handles the transmission of IPv6 Packets. It also handles fragmentation of the packets, if the packets being transmitted are larger than the configured MTU on the transmit device
src/stack/lli6/lli6.c | The file implements the LLI6 Module which is responsible for keeping track of the Neighbor Cache entries and the Neighbor Unreachability Algorithm as specified in RFC 2461
src/stack/mld/mld.c | The file handles the Multicast Listner Discovery Protocol for IPv6
src/stack/nimu/nimu.c | Implements the network interface management code. This is required when the NDK Core stack has been built to be able to handle multiple drivers. The file has the code which resides in the data path
src/stack/raw6/raw6.c | The file has functions which handle the RAW6 sockets
src/stack/raweth/raweth.c | The file implements the interface to send and receive Raw Ethernet traffic using NDK stack and NIMU architecture
src/stack/rawethsock/rawethsock.c | The file implements the RAWETHSOCK object which is the socket library for Raw Ethernet Sockets. Raw Ethernet Sockets are useful for transporting data over Ethernet network using custom Layer 2 Protocol types, i.e other than IPv4, IPv6 etc
src/stack/rawethsock/rawethsock.h | SOCKRAWETH private definitions
src/stack/res6/sb6.c | The file implements the Socket Buffer for IPv6
src/stack/route6/route6.c | The file has functions which handle the Route6 objects
src/stack/sock/sockpcb.c | Object member functions for the Sock device object. These functions include protocol control type access to the SOCKET object
src/stack/sock6/sock6.c | The file implements the SOCK6 object which is the socket library for IPv6
src/stack/sock6/sock6.h | SOCK6 private definitions
src/stack/sock6/sock6int.c | The file implements the SOCKET6 Family
src/stack/sock6/sock6pcb.c | Object member functions for the Sock6 device object. These functions include protocol control type access to the SOCKET object
src/stack/sock6/sock6prot.c | The file implements the SOCKET6 Family
src/stack/tcp6/tcp6.c | The file has generic functions used by the TCP6 Module
src/stack/tcp6/tcp6.h | The file contains private definitions for the TCP Module which runs over IPv6
src/stack/tcp6/tcp6in.c | The file has functions which handle the reception of TCP packets over the IPv6 network
src/stack/tcp6/tcp6out.c | The file has functions which handle the transmission of TCP packets over the IPv6 network
src/stack/tcp6/tcp6prot.c | The file handle the TCP Protocol functions for V6
src/stack/tcp6/tcp6time.c | The file has TCP6 Time Management routines
src/stack/udp6/udp6.c | The file implements the UDP protocol over IPv6
src/stack/utils/listlib.c | Implementation of a doubly linked list
src/stack/vlan/vlan.c | The file implements the VLAN core stack functionality


NDK Stack Documentation: inc/socket.h File Reference

inc/socket.h File Reference

Common structures and definitions for Socket layer. More...

Functions

_extern SOCKET | accept (SOCKET s, PSA pName, int *plen)
_extern int | bind (SOCKET s, PSA pName, int len)
_extern int | connect (SOCKET s, PSA pName, int len)
_extern int | getpeername (SOCKET s, PSA pName, int *plen)
_extern int | getsockname (SOCKET s, PSA pName, int *plen)
_extern int | getsockopt (SOCKET s, int level, int op, void *pbuf, int *pbufsize)
_extern int | listen (SOCKET s, int maxcon)
_extern int | recv (SOCKET s, void *pbuf, int size, int flags)
_extern int | recvfrom (SOCKET s, void *pbuf, int size, int flags, PSA pName, int *plen)
_extern int | recvnc (SOCKET s, void **ppbuf, int flags, HANDLE *pHandle)
_extern int | recvncfrom (SOCKET s, void **ppbuf, int flags, PSA pName, int *plen, HANDLE *pHandle)
_extern int | send (SOCKET s, void *pbuf, int size, int flags)
_extern int | sendto (SOCKET s, void *pbuf, int size, int flags, PSA pName, int len)
_extern int | setsockopt (SOCKET s, int level, int op, void *pbuf, int bufsize)
_extern int | shutdown (SOCKET s, int how)
_extern SOCKET | socket (int domain, int type, int protocol)
_extern int | getsendncbuff (SOCKET s, UINT32 bufSize, void **phBuf, HANDLE *phPkt)
_extern int | sendnc (SOCKET s, void *pbuf, int size, HANDLE hPkt, int flags)
_extern int | pipe (HANDLE *pfd1, HANDLE *pfd2)

Detailed Description

Common structures and definitions for Socket layer.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

_extern SOCKET accept | ( | SOCKET | s,
 |  | PSA | pName,
 |  | int * | plen
 | ) |  |

Description
This function extracts the first pending connection request in the socket queue and spawns a new socket to accept the incoming connection request. This function call is valid only for connection-oriented socket types like TCP.

Parameters:
[in] | s | Handle to local bound socket that is waiting/listening on any incoming connections. The argument s is a socket that has been created using "socket" function call, bound to a local address using "bind" and listening for connections with "listen" function calls.
[in] | pName | Handle to the sockaddr structure that holds the peer host's address and port information.
[in] | plen | Holds the length of the sockaddr structure being passed as argument to this function.
[out] | pName | Handle to the sockaddr structure that holds the connected peer's address and port information. The exact format of this is based on the address family. Valid only when this function returns success.
[out] | plen | Holds the length of the connected peer's sockaddr structure. The exact length depends on the address family of the socket created. Valid only when the function returns success.
Return values:
Success | - Handle to the new socket created
Error | - INVALID_SOCKET

_extern int bind | ( | SOCKET | s,
 |  | PSA | pName,
 |  | int | len
 | ) |  |

Description
This function assigns a name to an unnamed socket. When a socket is created using "socket()" call, it exists in a name space (address family) but has no name assigned. The bind() function requests that name be assigned to the socket.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | pName | Handle to the sockaddr structure that holds the local address and port information that needs to be assigned to the socket.
[in] | len | Holds the length of the sockaddr structure being passed as argument to this function. This in turn depends on the address family of the socket.
Return values:
Success | - 0
Error | - -1

_extern int connect | ( | SOCKET | s,
 |  | PSA | pName,
 |  | int | len
 | ) |  |

Description
This function establishes a logical connection from the socket specified by s to the foreign name (address) specified by pName.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | pName | Handle to the sockaddr structure that holds the remote host's address and port information to which the socket needs to connect to. For UDP/SOCK_DGRAM socket pName specifies the address to which packets would be sent by default or can be received from. For TCP/SOCK_STREAM socket this call attempts to make a connection to the socket that is bound to address specified by pName.
[in] | len | Holds the length of the sockaddr structure being passed as argument to this function. This in turn depends on the address family of the socket.
Return values:
Success | - 0
Error | - -1

_extern int getpeername | ( | SOCKET | s,
 |  | PSA | pName,
 |  | int * | plen
 | ) |  |

Description
The getpeername() function retrieves the peer address of the specified socket, store this address in the sockaddr structure pointed to by the pName argument, and store the length of this address in plen argument.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[out] | pName | Handle to the sockaddr structure that holds the remote host's address and port information to which the socket is connected to. Valid only when this function returns success.
[out] | plen | Holds the length of the sockaddr structure being passed as result from this function. Valid only when this function returns success.
Return values:
Success | - 0
Error | - -1

_extern int getsendncbuff | ( | SOCKET | s,
 |  | UINT32 | bufSize,
 |  | void ** | phBuf,
 |  | HANDLE * | phPkt
 | ) |  |

Description
This function allocates bufSize bytes memory for the data buffer and required memory for the packet buffer to hold this data. On successful memory allocation, it initializes the phBuf and phPkt pointers with the data buffer and packet buffer handles. The data buffer obtained from this API can be used by the application to fill in required data. The application then would need to use the data buffer and packet buffer handles in its call to sendnc() API to send the packet out without any copy on transmit path by the stack. The packet and data buffers are freed up automatically once the packet transmission is completed in the ethernet driver. However, if for some reason the application would like to free the buffer and packet obtained using this call, it can to do so by passing the packet buffer handle to sendncfree() API call and it would free up both the packet and data buffers.

This API is currently only supported for AF_RAWETH family sockets.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | bufSize | Size of data buffer to allocate memory for.
[in] | phBuf | Pointer to data buffer handle in which the application can fill in the required data to send using sendnc() API.
*
Parameters:
[in] phPkt Pointer to the packet buffer handle which holds the data buffer in turn.
Return values:
Success | - 0
Error | - -1

_extern int getsockname | ( | SOCKET | s,
 |  | PSA | pName,
 |  | int * | plen
 | ) |  |

Description
The getsockname() function retrieves the local address of the specified socket, store this address in the sockaddr structure pointed to by the pName argument, and store the length of this address in plen argument.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[out] | pName | Handle to the sockaddr structure that holds the local host's address and port information to which the socket is bound to. Valid only when this function returns success.
[out] | plen | Holds the length of the sockaddr structure being passed as result from this function. Valid only when this function returns success.
Return values:
Success | - 0
Error | - -1

_extern int getsockopt | ( | SOCKET | s,
 |  | int | level,
 |  | int | op,
 |  | void * | pbuf,
 |  | int * | pbufsize
 | ) |  |

Description
This function returns the options associated with a socket.

Parameters:
[in] | s | Socket handle
[in] | level | Option level (SOL_SOCKET, IPPROTO_IP, IPPROTO_IPV6,IPPROTO_TCP)
[in] | op | Socket option to get
[in] | pbuf | Pointer to memory buffer
[in] | pbufsize | Pointer to size of memory buffer
Return values:
Success | - 0
Error | - -1

_extern int listen | ( | SOCKET | s,
 |  | int | maxcon
 | ) |  |

Description
This function enables the socket to wait for any incoming connection requests. It also configures the size of the pending connection request queue of the socket. This call is applicable only for connection oriented sockets (SOCK_STREAM/TCP).

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | maxcon | Specifies the maximum length of the queue of pending connections.
Return values:
Success | - 0
Error | - -1

_extern int pipe | ( | HANDLE * | pfdret1,
 |  | HANDLE * | pfdret2
 | ) |  |

Description
Creates a pre-connected full duplex pipe. The returned file descriptors can be used with all the fd file descriptor functions, as well as the send() and recv() socket functions.

Parameters:
[in] | pfdret1 | Pointer to file descriptor to first end of pipe.
[in] | pfdret2 | Pointer to file descriptor to second end of pipe.
Return values:
Success | - 0
Error | - -1

_extern int recv | ( | SOCKET | s,
 |  | void * | pbuf,
 |  | int | size,
 |  | int | flags
 | ) |  |

Description
This function is used to read data received on a specified socket.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | pbuf | Specifies the buffer to which the data has to be copied to.
[in] | size | Specifies the maximum size of the buffer.
[in] | flags | Options flags
Return values:
Success | - Number of bytes of data received successfully
Error | - -1

_extern int recvfrom | ( | SOCKET | s,
 |  | void * | pbuf,
 |  | int | size,
 |  | int | flags,
 |  | PSA | pName,
 |  | int * | plen
 | ) |  |

Description
This function attempts to receive data from a socket. It is normally called with unconnected, non-connection oriented sockets. The data is placed into the buffer specified by pbuf, up to a maximum length specified by size. The options in flags can be used to change the default behavior of the operation. The name (address) of the sender is written to pName.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | pbuf | Specifies the buffer to which the data has to be copied to.
[in] | size | Specifies the maximum size of the buffer.
[in] | flags | Options flags
[out] | pName | Pointer to place name (address) of sender
[out] | plen | Pointer to size of pName
Return values:
Success | - Number of bytes of data received successfully
Error | - -1

_extern int recvnc | ( | SOCKET | s,
 |  | void ** | ppbuf,
 |  | int | flags,
 |  | HANDLE * | phFrag
 | ) |  |

Description
This function is used to read data received on a specified socket without copying. This is supported only on IPv4/AF_INET family and Raw ethernet/AF_RAWETH sockets.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[out] | ppbuf | Pointer to receive data buffer pointer.
[in] | flags | Options flags
[out] | phFrag | Pointer to receive buffer handle.
Return values:
Success | - Number of bytes of data received successfully
Error | - -1
Returns 0 on connection oriented sockets where the connection has been closed by the peer (or socket shutdown for read)

_extern int recvncfrom | ( | SOCKET | s,
 |  | void ** | ppbuf,
 |  | int | flags,
 |  | PSA | pName,
 |  | int * | plen,
 |  | HANDLE * | phFrag
 | ) |  |

Description
This function attempts to receive data from a socket. It is normally called with unconnected, non-connection oriented sockets. A pointer to data is returned in ppbuf. A system handle used to free the buffer is returned in phFrag. Both of these pointers must be valid. The name (address) of the sender is written to pName. This function is only valid for IPv4/AF_INET family sockets.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[out] | ppbuf | Pointer to receive data buffer pointer.
[in] | flags | Options flags
[out] | pName | Pointer to place name (address) of sender
[out] | plen | Pointer to size of pName
[out] | phFrag | Pointer to receive buffer handle.
Return values:
Success | - Number of bytes of data received successfully
Error | - -1
Returns 0 on connection oriented sockets where the connection has been closed by the peer (or socket shutdown for read)

_extern int send | ( | SOCKET | s,
 |  | void * | pbuf,
 |  | int | size,
 |  | int | flags
 | ) |  |

Description
This function attempts to send data on a socket. It is used on connected sockets only. The data to send is contained in the buffer specified by pbuf, with a length specified by size. The options in flags can be used to change the default behavior of the operation. The functions returns the length of the data transmitted on successful completion.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | pbuf | Data buffer holding data to transmit
[in] | size | Size of data.
[in] | flags | Options flags
Return values:
Success | - Number of bytes of data sent successfully
Error | - -1

_extern int sendnc | ( | SOCKET | s,
 |  | void * | pbuf,
 |  | int | size,
 |  | HANDLE | hPkt,
 |  | int | flags
 | ) |  |

Description
This function attempts to send data on a socket without copy. The data to send is contained in the buffer specified by pbuf, with a length specified by size. Also, a valid handle to the packet buffer hPkt needs to be specified. This packet handle and the buffer pointer should have been obtained from getsendncbuf() call before calling this API. The options in flags can be used to change the default behavior of the operation. The functions returns the length of the data transmitted on successful completion.

This API is currently only supported for AF_RAWETH family sockets.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | pbuf | Data buffer holding data to transmit
[in] | size | Size of data.
[in] | hPkt | packet handle obtained previously from getsendncbuf() call.
[in] | flags | Options flags
Return values:
Success | - Number of bytes of data sent successfully
Error | - -1

_extern int sendto | ( | SOCKET | s,
 |  | void * | pbuf,
 |  | int | size,
 |  | int | flags,
 |  | PSA | pName,
 |  | int | len
 | ) |  |

Description
This function attempts to send data on a socket to a specified destination. It is used on unconnected, non-connection oriented \ sockets only. The data to send is contained in the buffer specified by pbuf, with a length specified by size. The options in flags can be used to change the default behavior of the operation.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | pbuf | Data buffer holding data to transmit
[in] | size | Size of data.
[in] | flags | Options flags
[out] | pName | Pointer to name (address) of destination
[out] | len | size of pName
Return values:
Success | - Number of bytes of data sent successfully
Error | - -1

_extern int setsockopt | ( | SOCKET | s,
 |  | int | level,
 |  | int | op,
 |  | void * | pbuf,
 |  | int | bufsize
 | ) |  |

Description
This function sets the option values associated with a socket.

Parameters:
[in] | s | Socket handle
[in] | level | Option level (SOL_SOCKET, IPPROTO_IP, IPPROTO_IPV6,IPPROTO_TCP)
[in] | op | Socket option to set
[in] | pbuf | Pointer to memory buffer
[in] | bufsize | Size of memory buffer pointed to by pbuf
Return values:
Success | - 0
Error | - -1

_extern int shutdown | ( | SOCKET | s,
 |  | int | how
 | ) |  |

Description
This function causes all or part of a full-duplex connection on the socket associated with a socket to be shut down. If how is SHUT_RD (0), further receives will be disallowed. If how is SHUT_WR (1), further sends will be disallowed. If how is SHUT_RDWR (2), further sends and receives will be disallowed.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | how | Manner of shutdown.
Return values:
Success | - 0
Error | - -1

_extern SOCKET socket | ( | int | domain,
 |  | int | type,
 |  | int | protocol
 | ) |  |

Description
This function creates a socket, an endpoint for communication and returns the socket in the form of a file descriptor.

Parameters:
[in] | domain | Socket domain/family. Valid values are AF_INET/AF_INET6.
[in] | type | Socket type (SOCK_DGRAM, SOCK_STREAM, SOCK_RAW).
[in] | protocol | Socket protocol (Normally IPPROTO_TCP or IPPROTO_UDP, but can be anything when type is set to SOCK_RAW)
Return values:
Success | - socket handle
Error | - INVALID_SOCKET


NDK Stack Documentation: inc/stack/inc/bind6if.h File Reference

inc/stack/inc/bind6if.h File Reference

Common structures and definitions used by the BIND6 Object. More...

Data Structures

struct | BIND6_ENTRY
The structure describes the BIND6 Object. More...

Functions

_extern HANDLE | Bind6New (NETIF_DEVICE *ptr_device, IP6N Host, IP6N Mask, UINT32 ValidLT, UINT32 PrefLT, UINT8 IsAny)
_extern void | Bind6Free (HANDLE hbind6Obj)
_extern int | Bind6DADCheck (NETIF_DEVICE *ptr_device, IP6N TargetAddress)
_extern HANDLE | Bind6FindByHost (NETIF_DEVICE *ptr_device, IP6N IP)
_extern HANDLE | Bind6FindByNet (NETIF_DEVICE *ptr_device, IP6N IPNet)
_extern HANDLE | Bind6FindByIF (NETIF_DEVICE *ptr_device)
_extern IP6N | Bind6IF2IPHost (NETIF_DEVICE *ptr_device)
_extern UINT32 | Bind6GetLifetime (HANDLE hbind6Obj)
_extern void | Bind6SetLifetime (HANDLE hbind6Obj, UINT32 Lifetime)
_extern int | Bind6GetLinkLocalAddress (NETIF_DEVICE *ptr_device, IP6N *IPAddress)
_extern int | Bind6GetGlobalAddress (NETIF_DEVICE *ptr_device, IP6N IPNetworkAddr, IP6N *IPAddress)
_extern NETIF_DEVICE * | Bind6GetInterfaceHandle (HANDLE hbind6Obj)
_extern BIND6_ENTRY * | Bind6GetTable (void)
_extern void | Bind6CleanTable (BIND6_ENTRY *ptr_list)

Detailed Description

Common structures and definitions used by the BIND6 Object.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

_extern void Bind6CleanTable ( BIND6_ENTRY * ptr_list )

Description
The function is called to clean the memory allocated by a previous call to Route6GetTable. The function cleans the replicated copy of the routing table. This function is available to system developers and can be called from outside kernel mode.

See also:
Bind6GetTable
Parameters:
[in] ptr_list This is the head of the duplicate list which will be cleaned up.
Return values:
Not Applicable

_extern int Bind6DADCheck | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | TargetAddress
 | ) |  |

Description
The function is called by the ICMP6 Module to check if the received address passes or fails the DAD Check.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | The pointer to the network interface device on which the DAD needs to be stopped.
[in] | TargetAddress | The IP Address matching the Target Address in the NS/NA request.
Return values:
Success | (No DAD Detected) - 0
Error | (DAD Detected) - <0

_extern HANDLE Bind6FindByHost | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | IP
 | ) |  |

Description
Find a binding by searching IF handle with IP Host addr This is an external NDK Stack API and is available to other modules. In this we search only addresses which have passed the DAD Procedure since these are VALID.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | Pointer to the NIMU Network Interface object which has to be searched for the IPv6 address.
[in] | IP | IPv6 Address to be searched for.
Return values:
Match | - Handle to the BIND6_ENTRY Object
No | Match - 0

_extern HANDLE Bind6FindByIF ( NETIF_DEVICE * ptr_device )

Description
The function searches the BIND6_ENTRY objects in the system for a specific interface.

This is for *internal* NDK Stack Usage.

Parameters:
[in] ptr_device The Network interface object whose BIND6_ENTRY Object we are interested in.
Return values:
Handle to the BIND6_ENTRY object

_extern HANDLE Bind6FindByNet | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | IPNet
 | ) |  |

Description
Find a binding by searching IF handle with IP Net addr This is an external NDK Stack API and is available to other modules. In this we search only addresses which have passed the DAD Procedure since these are VALID.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | Pointer to the NIMU Network Interface object which has to be searched for the IPv6 address.
[in] | IPNet | IPv6 Network Address we are searching for.
Return values:
Match | - Handle to the BIND6_ENTRY Object
No | Match - 0

_extern void Bind6Free ( HANDLE hbind6Obj )

Description
The function is used to close an IPv6 binding.

This is for *internal* NDK Stack Usage.

Parameters:
[in] hbind6Obj The BIND6_ENTRY Object which is to be freed up.
Return values:
Not Applicable.

_extern int Bind6GetGlobalAddress | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | IPNetworkAddr,
 |  | IP6N * | IPAddress
 | ) |  |

Description
The function searches the BIND6 object and returns a GLOBAL Address for the device. An Error Condition conveys the fact either IPv6 has not been initialized on this interface or there is no GLOBAL Address configured on the interface

Parameters:
[in] | ptr_device | The Network interface object whose LINK LOCAL Address is required.
[in] | IPNetworkAddr | The Network Mask of the IP Address that needs to be retuned.
[out] | IPAddress | The GLOBAL IP Address is returned
Return values:
Success | - 0
Error | - -1

_extern NETIF_DEVICE* Bind6GetInterfaceHandle ( HANDLE hbind6Obj )

Description
The function returns the interface handle given the BIND6_ENTRY object.

This is for *internal* NDK Stack Usage.

Parameters:
[in] hbind6Obj The BIND6_ENTRY Object whose interface handle we need.
Return values:
Success | - Handle of the interface
Error | - 0

_extern UINT32 Bind6GetLifetime ( HANDLE hbind6Obj )

Description
The function returns the Lifetime matching the BIND6_ENTRY object.

This is for *internal* NDK Stack Usage.

Parameters:
[in] hbind6Obj Handle to the BIND6_ENTRY object whose lifetime we need to get
Return values:
Lifetime value associated with the BIND6_ENTRY object.

_extern int Bind6GetLinkLocalAddress | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N * | IPAddress
 | ) |  |

Description
The function searches the BIND6 object and returns a LINK LOCAL Address for the device. An Error Condition conveys the fact that there IPv6 has not been initialized on this interface.

Parameters:
[in] | ptr_device | The Network interface object whose LINK LOCAL Address is required.
[out] | IPAddress | The Link Local IP Address is returned
Return values:
Success | - 0
Error | - -1

_extern BIND6_ENTRY* Bind6GetTable ( void )

Description
The function replicates the BIND6 Table and creates a duplicate copy which is then returned back to the callee. The replicated BIND table list needs to be cleaned by the callee. This function is available to system developers and can be called from outside kernel mode.

See also:
Bind6CleanTable
Return values:
Head of the copy of the BIND6

_extern IP6N Bind6IF2IPHost ( NETIF_DEVICE * ptr_device )

Description
The function returns the IPv6 address matching the BIND6_ENTRY object.

This is for *internal* NDK Stack Usage.

Parameters:
[in] ptr_device The Network interface object whose IPv6 Address we are interested in.
Return values:
Success | - The IPv6 Address matching the interface
Error | - IPV6_UNSPECIFIED_ADDRESS (::)

_extern HANDLE Bind6New | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | IPHost,
 |  | IP6N | IPMask,
 |  | UINT32 | ValidLifetime,
 |  | UINT32 | PreferredLifetime,
 |  | UINT8 | IsAnycast
 | ) |  |

Description
This function is used to create a new BIND6_ENTRY Object with the specified properties.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | Pointer to the NIMU Network Interface object on which the BIND6_ENTRY object is to be created.
[in] | IPHost | IPv6 Address
[in] | IPMask | IPv6 Mask
[in] | ValidLifetime | Valid Lifetime for which the address remains VALID
[in] | PreferredLifetime | Preferred Lifetime for which the address remains VALID
[in] | IsAnycast | Flag set to 1 if the address is an ANYCAST Address; else set to 0.
Return values:
Success | - Handle to the new BIND6_ENTRY Object
Error | - 0

_extern void Bind6SetLifetime | ( | HANDLE | hbind6Obj,
 |  | UINT32 | Lifetime
 | ) |  |

Description
The function sets the Lifetime matching the BIND6_ENTRY object.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | hbind6Obj | Handle to the BIND6_ENTRY object whose lifetime we need to get
[in] | Lifetime | New Lifetime value to be associated.
Return values:
Not Applicable.


NDK Stack Documentation: inc/stack/inc/icmp6if.h File Reference

inc/stack/inc/icmp6if.h File Reference

Common structures and definitions for ICMPv6. More...

Data Structures

struct | ICMPV6STATS
The structure describes the ICMPv6 Statistics Block. More...

Functions

_extern void | ICMPv6Init (void)
_extern int | ICMPv6RxPacket (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)
_extern int | ICMPv6RecvNS (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)
_extern int | ICMPv6RecvNA (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)
_extern int | ICMPv6RecvRA (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)
_extern int | ICMPv6RecvRedirect (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)
_extern int | ICMPv6RecvRS (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)
_extern int | ICMPv6SendDstUnreachable (UINT8 Code, PBM_Pkt *pOrgPkt)
_extern int | ICMPv6SendTimeExceeded (UINT8 Code, PBM_Pkt *pOrgPkt)
_extern int | ICMPv6SendParameterProblem (UINT8 Code, PBM_Pkt *pOrgPkt, UINT32 Pointer)
_extern int | ICMPv6SendNS (NETIF_DEVICE *ptr_device, IP6N DstAddress, IP6N SrcAddress, IP6N TargetAddress)
_extern int | ICMPv6SendNA (NETIF_DEVICE *ptr_device, IP6N DstAddress, IP6N SrcAddress, IP6N TargetAddress, UINT8 Flags)
_extern int | ICMPv6SendRS (NETIF_DEVICE *ptr_device, IP6N SrcAddress)

Detailed Description

Common structures and definitions for ICMPv6.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

_extern void ICMPv6Init ( void )

Description
The function is used to initialize the ICMPv6 Protocol stack.

This is for *internal* NDK Stack Usage.

Return values:
Not Applicable.

_extern int ICMPv6RecvNA | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function handles the ICMPv6 Neighbour Advertisment Message

Parameters:
[in] | pPkt | Pointer to the entire ICMPv6 Packet.
[in] | ptr_ipv6hdr | Pointer to the IPv6 Header.
See also:
RFC-2461 Section 7.1.2
Return values:
0 | - Success
<0 | - Error

_extern int ICMPv6RecvNS | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function handles the ICMPv6 Neighbour Solicitation Message

Parameters:
[in] | pPkt | Pointer to the entire ICMPv6 Packet.
[in] | ptr_ipv6hdr | Pointer to the IPv6 Header.
See also:
RFC-2461 Section 7.1.1, 7.2.3 & 7.2.4.
Return values:
0 | - Success
<0 | - Error

_extern int ICMPv6RecvRA | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function handles the ICMPv6 Router Advertisment Message

Parameters:
[in] | pPkt | Pointer to the entire ICMPv6 Packet.
[in] | ptr_ipv6hdr | Pointer to the IPv6 Header.
See also:
RFC-2461 Section 6.1
Return values:
0 | - Success
<0 | - Error

_extern int ICMPv6RecvRedirect | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function handles the ICMPv6 Redirect Message

Parameters:
[in] | pPkt | Pointer to the entire ICMPv6 Packet.
[in] | ptr_ipv6hdr | Pointer to the IPv6 Header.
See also:
RFC-2461 Section 8
Return values:
0 | - Success
<0 | - Error

_extern int ICMPv6RecvRS | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function handles the ICMPv6 Router Solicitation Message

Parameters:
[in] | pPkt | Pointer to the entire ICMPv6 Packet.
[in] | ptr_ipv6hdr | Pointer to the IPv6 Header.
See also:
RFC-2461 Section 6.1
Return values:
0 | - Success
<0 | - Error

_extern int ICMPv6RxPacket | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function handles the ICMPv6 Packets.

Parameters:
[in] | pPkt | Pointer to the entire ICMPv6 Packet.
[in] | ptr_ipv6hdr | Pointer to the IPv6 Header.
Return values:
Not Applicable.

_extern int ICMPv6SendDstUnreachable | ( | UINT8 | Code,
 |  | PBM_Pkt * | pOrgPkt
 | ) |  |

Description
The function sends a destination unreachable message. The function accepts Code as a parameter and can be used to send different messages.

Parameters:
[in] | Code | Code to be added to the ICMPv6 Destination Unreachable message Valid Values range from 0 - 4 as specified in RFC 2463.
[in] | pOrgPkt | The offending packet which causes the packet to be sent out.
Return values:
0 | - Success
<0 | - Error

_extern int ICMPv6SendNA | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | DstAddress,
 |  | IP6N | SrcAddress,
 |  | IP6N | TargetAddress,
 |  | UINT8 | Flags
 | ) |  |

Description
The function is used to send out a Neighbor Advertisment.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | The Network Interface object on which the packet is to be transmitted.
[in] | DstAddress | The destination address to which the NA packet is directed too.
[in] | SrcAddress | The Source address of the interface
[in] | TargetAddress | The Target address to which the NA message is being transmitted.
[in] | Flags | The value of the (R)eserved, (S)olicited and (O)verride flags.
Return values:
0 | - Success
<0 | - Error

_extern int ICMPv6SendNS | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | DstAddress,
 |  | IP6N | SrcAddress,
 |  | IP6N | TargetAddress
 | ) |  |

Description
The function is used to send out a Neighbor solicitation

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | The Network Interface object on which the packet is to be transmitted.
[in] | DstAddress | The destination address to which the NS packet is directed too. As per RFC 2461; this can either be the Solicted Node Multicast Address or the the target address.
[in] | SrcAddress | The Source address of the interface; this can either be UNSPECIFIED i.e. :: if the NS is being sent for DAD or it will be the address of the source interface.
[in] | TargetAddress | The Target address to which the NS message is being transmitted.
Return values:
0 | - Success
<0 | - Error

_extern int ICMPv6SendParameterProblem | ( | UINT8 | Code,
 |  | PBM_Pkt * | pOrgPkt,
 |  | UINT32 | Pointer
 | ) |  |

Description
The function sends the Parameter Problem message. The function accepts Code as a parameter and can be used to send different messages.

Parameters:
[in] | Code | Code to be added to the ICMPv6 Time Exceeded message Valid Values range from 0 - 2 as specified in RFC 2463.
[in] | pOrgPkt | The offending packet which causes the packet to be sent out.
[in] | Pointer | Identifies the Code Offset within the packet where the error occurred.
Return values:
0 | - Success
<0 | - Error

_extern int ICMPv6SendRS | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | SrcAddress
 | ) |  |

Description
The function is used to send out a Router solicitation. All RS messages are sent to the ALL_ROUTER Destination Address.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | The Network Interface object on which the packet is to be transmitted.
[in] | SrcAddress | The Source address of the interface; this could be set to the UNSPECIFIED address. If the Source address is UNSPECIFIED; the function does not append the SOURCE_LL Option to the RS packet.
Return values:
0 | - Success
<0 | - Error

_extern int ICMPv6SendTimeExceeded | ( | UINT8 | Code,
 |  | PBM_Pkt * | pOrgPkt
 | ) |  |

Description
The function sends a Time Exceeded message. The function accepts Code as a parameter and can be used to send different messages.

Parameters:
[in] | Code | Code to be added to the ICMPv6 Time Exceeded message Valid Values range from 0 - 1 as specified in RFC 2463.
[in] | pOrgPkt | The offending packet which causes the packet to be sent out.
Return values:
0 | - Success
<0 | - Error


NDK Stack Documentation: inc/stack/inc/ip6if.h File Reference

inc/stack/inc/ip6if.h File Reference

Common structures and definitions for IPv6. More...

Data Structures

struct | IPV6_DEV_RECORD
The structure describes the IPv6 Device Record. More...
struct | IPV6STATS
The structure describes the IPv6 Statistics Block. More...

Functions

_extern void | IPv6ParseExtnHeaders (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)
_extern int | IPv6ParseFragHdr (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)
_extern void | IPv6RxPacket (PBM_Pkt *pPkt)
_extern HANDLE | IPv6GetRoute (IP6N DstIP)
_extern int | IPv6TxPacket (PBM_Pkt *pPkt, UINT32 Flags)
_extern int | IPv6InterfaceDeInit (UINT16 dev_index)
_extern int | IPv6AddAddress (UINT16 dev_index, IP6N Address, UINT16 NetBits, UINT32 VLT, UINT32 PLT, UINT8 IsAny)
_extern int | IPv6DelAddress (UINT16 dev_index, IP6N Address)
_extern void | IPv6GetSubnetMaskFromBits (IP6N *SubnetMask, UINT16 bits)
_extern void | IPv6DisplayIPAddress (IP6N address)
_extern int | IPv6StringToIPAddress (char *StringIP, IP6N *address)
_extern UINT16 | IPv6CompareAddress (IP6N addr1, IP6N addr2)
_extern UINT16 | IPv6IsMulticast (IP6N address)
_extern UINT16 | IPv6IsLinkLocal (IP6N address)
_extern UINT16 | IPv6Layer4ComputeChecksum (UINT8 *ptr_l4Hdr, PSEUDOV6 *ptr_pseudoHdr)

Detailed Description

Common structures and definitions for IPv6.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

_extern int IPv6AddAddress | ( | UINT16 | dev_index,
 |  | IP6N | Address,
 |  | UINT16 | NetBits,
 |  | UINT32 | ValidLifetime,
 |  | UINT32 | PrefLifetime,
 |  | UINT8 | IsAnycast
 | ) |  |

Description
This function is used to add an IPv6 address to an interface. This function should not be used to add Link Local Addresses to the interface. Link Local Addresses are automatically added to the interface when the IPv6 stack is initialized on it.

See also:
IPv6AddAddress
The function is exported to system developers and should only be called from outside kernel mode.

Parameters:
[in] | dev_index | The device index on which the IPv6 address needs to be added.
[in] | Address | The IPv6 Address which needs to be added.
[in] | NetBits | The number of bits which make the Subnet-Mask.
[in] | ValidLifetime | The Valid Lifetime of the address. Set to INFINITE_LT if the address is permanent
[in] | PrefLifetime | The Preferred Lifetime of the address. Set to INFINITE_LT if the address is permanent.
[in] | IsAnycast | Flag which indicates if the address to be added is ANYCAST or UNICAST. Set to 1 for ANYCAST.
Return values:
0 | - Success
<0 | - Error

_extern UINT16 IPv6CompareAddress | ( | IP6N | addr1,
 |  | IP6N | addr2
 | ) |  |

Description
Utility Function used to compare the 2 IPv6 Addresses.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | addr1 | The first IPv6 Address which is to be compared.
[in] | addr2 | The second IPv6 Address which is to be compared.
Return values:
1 | - The IP Addresses match
0 | - The IP Addresses do not match

_extern int IPv6DelAddress | ( | UINT16 | dev_index,
 |  | IP6N | Address
 | ) |  |

Description
This function is used to delete an IPv6 address from an interface This function should not be used to delete Link Local Addresses from the interface. Link Local Addresses are automatically deleted from the interface when the IPv6 stack is de-initialized on it.

See also:
IPv6InterfaceDeInit
The function is exported to system developers and should only be called from outside kernel mode.

Parameters:
[in] | dev_index | The device index on which the IPv6 address needs to be deleted.
[in] | Address | The IPv6 Address which needs to be deleted.
Return values:
0 | - Success
<0 | - Error

_extern void IPv6DisplayIPAddress ( IP6N address )

Description
Utility Function which prints the IPv6 address. The IP address passed has to be specified in network order (IP6N).

Parameters:
[in] address IPv6 Address to be displayed.
Return values:
Not Applicable.

_extern HANDLE IPv6GetRoute ( IP6N DstIP )

Description
The function is used to get an IPv6 route matching the destination IP Address. The function increments the reference counter for the ROUTE6 object.

This is for *internal* NDK Stack Usage.

Parameters:
[in] DstIP IPv6 Destination IP address we are trying to find a route for.
Return values:
Success | - Handle of the Route6 object to be used.
Error | - 0

_extern void IPv6GetSubnetMaskFromBits | ( | IP6N * | SubnetMask,
 |  | UINT16 | bits
 | ) |  |

Description
Utility Function which gets the subnet mask given the number of bits.

For example: Subnet Mask = 0xFFFF:: if the bits is 16

This is for *internal* NDK Stack Usage.

Parameters:
[out] | SubnetMask | Pointer to the computed subnet mask in network order.
[in] | bits | Number of bits in the subnet mask
Return values:
Not Applicable.

_extern int IPv6InterfaceDeInit ( UINT16 dev_index )

Description
This function is used to deinitialize the IPv6 stack on the the specific device name. The function is available to System Developers and should only be called from within kernel mode.

Parameters:
[in] dev_index The device index on which the IPv6 stack is to be deinitialized.
Return values:
0 | - Success
<0 | - Error

_extern UINT16 IPv6IsLinkLocal ( IP6N address )

Description
Utility Function which determines if the IPv6 Address specified is a Link Local address or not?

This is for *internal* NDK Stack Usage.

Parameters:
[in] address IPv6 Address which needs to be verfied.
Return values:
1 | - The address passed is Link Local
0 | - The address passed is NOT Link Local

_extern UINT16 IPv6IsMulticast ( IP6N address )

Description
Utility Function which determines if the IPv6 Address specified is a Multicast address or not?

This is for *internal* NDK Stack Usage.

Parameters:
[in] address IPv6 Address which needs to be verfied.
Return values:
1 | - The address passed is MULTICAST
0 | - The address passed is NOT Multicast

_extern UINT16 IPv6Layer4ComputeChecksum | ( | UINT8 * | ptr_l4Hdr,
 |  | PSEUDOV6 * | ptr_pseudoHdr
 | ) |  |

Description
The function does the Layer4 Checksum computation.

Parameters:
[in] | ptr_l4Hdr | Pointer to the Layer4 Header. This could be TCP, UDP or ICMPv6.
[in] | ptr_pseudoHdr | Pointer to the Pseudo Header.
Return values:
Returns the computed checksum.
Precondition:
Ensure that the Checksum field in the layer4 header is set to 0 before calling this function.

_extern void IPv6ParseExtnHeaders | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function handles all IPV6 extension headers.

Parameters:
[in] | pPkt | Pointer to the entire IPv6 Packet.
[in] | ptr_ipv6hdr | Pointer to the IPv6 Header.
Return values:
None

_extern int IPv6ParseFragHdr | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function handles all packets with fragmentation header.

Parameters:
[in] | pPkt | Pointer to the entire IPv6 Packet.
[in] | ptr_ipv6hdr | Pointer to the IPv6 Header.
Return values:
-1 | - Error in processing the packet. Packet has been cleaned up.
1 | - Packet has been successfully processed by fragmentation module. Its been absorbed by this module for reassembly. Ignore this packet. This packet is now a responsibility of the fragmentation layer for further processing.

_extern void IPv6RxPacket ( PBM_Pkt * pPkt )

Description
This function is used to process an IPv6 packet received on the network.

This is for *internal* NDK Stack Usage.

Parameters:
[in] pPkt Pointer to the IPv6 packet.
Return values:
Not Applicable.

_extern int IPv6StringToIPAddress | ( | char * | StringIP,
 |  | IP6N * | address
 | ) |  |

Description
Utility Function which converts an IPv6 Address from CHAR Format to IP6N

Parameters:
[in] | StringIP | The IPv6 Address in String Format
[out] | address | The IPv6 Address in IP6N format.
Return values:
0 | - Success
-1 | - Error

_extern int IPv6TxPacket | ( | PBM_Pkt * | pPkt,
 |  | UINT32 | Flags
 | ) |  |

Description
The function is used to transmit an IPv6 packet.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | pPkt | Pointer to the IPv6 packet which needs to be transmitted
[in] | Flags | Flags which need to be worked out. (Placeholder)
Return values:
Success | - 0
Error | - <0


NDK Stack Documentation: inc/stack/inc/lli6if.h File Reference

inc/stack/inc/lli6if.h File Reference

Extern Functions exported by the LLI6 Module. More...

Data Structures

struct | LLI6_ENTRY
The structure describes the LLI6 Entry. More...

Functions

_extern HANDLE | LLI6New (RT6_ENTRY *ptr_rt6, UINT8 *pMacAddress, UINT8 IsRouter)
_extern void | LLI6Update (HANDLE hLLI6, UINT8 *mac_address, UINT32 RxPktType, UINT32 Flags)
_extern void | LLI6Free (HANDLE hLLI6)
_extern UINT8 | LLI6IsRouter (HANDLE hLLI6)
_extern UINT8 | LLI6IsDead (HANDLE hLLI6)
_extern UINT8 | LLI6IsValid (HANDLE hLLI6)
_extern void | LLI6IncRefCount (HANDLE hLLI6)
_extern void | LLI6SetIncomplete (HANDLE hLLI6)
_extern NETIF_DEVICE * | LLI6GetNetDevice (HANDLE hLLI6)
_extern void | LLI6TxIPPacket (PBM_Pkt *pPkt, HANDLE hlli6, NETIF_DEVICE *ptr_device, IP6N Address)

Detailed Description

Extern Functions exported by the LLI6 Module.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

_extern void LLI6Free ( HANDLE hLLI6 )

Description
This function is used to delete the LLI6 Entry. LLI6 Entries can only be deleted by the ROUTE6 Module.

This is for *internal* NDK Stack Usage.

Parameters:
[in] hLLI6 Handle to the LLI6 Object to be deleted.
Return values:
Not Applicable.

_extern NETIF_DEVICE* LLI6GetNetDevice ( HANDLE hLLI6 )

Description
The function gets the network device associated with the LLI6 Entry.

This is for *internal* NDK Stack Usage.

Parameters:
[in] hLLI6 Handle to the LLI6 Entry whose network device we need to return.
Return values:
Success - Handle to the Network Device Error - 0

_extern void LLI6IncRefCount ( HANDLE hLLI6 )

Description
The function Increments the reference counter for the LLI6 Entry. This can be invoked by the ROUTE6 Module if it detects multiple hosts which have different IP addresses but are actual one and the same.

This is for *internal* NDK Stack Usage.

Parameters:
[in] hLLI6 Handle of the LLI6 Entry whose reference counter we need to increment.
Return values:
Not Applicable.

_extern UINT8 LLI6IsDead ( HANDLE hLLI6 )

Description
The function checks if the LLI6 Entry is DEAD or not?

This is for *internal* NDK Stack Usage.

Parameters:
[in] hLLI6 Handle to the LLI6 Entry which we need to check.
Return values:
1 | - LLI6 Entry is DEAD & can be removed.
0 | - LLI6 Entry is not DEAD

_extern UINT8 LLI6IsRouter ( HANDLE hLLI6 )

Description
The function verifies if the LLI6 Entry belongs to a ROUTER or HOST.

This is for *internal* NDK Stack Usage.

Parameters:
[in] hLLI6 Handle to the LLI6 Entry which we need to verify.
Return values:
1 | - LLI6 Entry belongs to a ROUTER
0 | - LLI6 Entry belongs to a HOST

_extern UINT8 LLI6IsValid ( HANDLE hLLI6 )

Description
The function checks if the LLI6 Entry is VALID or not? An LLI6 Entry can be used only if it is !INCOMPLETE and its !DEAD

This is for *internal* NDK Stack Usage.

Parameters:
[in] hLLI6 Handle to the LLI6 Entry which we need to check.
Return values:
1 | - LLI6 Entry is VALID and can be used.
0 | - LLI6 Entry is not VALID and should not be used.

_extern HANDLE LLI6New | ( | RT6_ENTRY * | ptr_rt6,
 |  | UINT8 * | pMacAddress,
 |  | UINT8 | IsRouter
 | ) |  |

Description
This function is used to create a new LLI6 Entry. LLI6 Entries can only be created by the ROUTE6 Module.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_rt6 | Pointer to the Route6 Entry on which the LLI6 Object is created.
[in] | pMacAddress | Pointer to the layer2 MAC Address.
[in] | IsRouter | Flag which indicates if the LLI6 Entry is ROUTER or HOST. This is set to 1 for ROUTER and 0 for HOST.
Return values:
Handle | to the new LLI Entry - Success
0 | - Error

_extern void LLI6SetIncomplete ( HANDLE hLLI6 )

Description
The function moves an LLI6 Entry to INCOMPLETE STATE. This API should be used very carefully as it might break the Neighbor Unreachability Detection Logic. This is currently being used from the ROUTE6 Module to handle the special case for the Default Router Selection.

This is for *internal* NDK Stack Usage.

Parameters:
[in] hLLI6 Handle to the LLI6 Entry whose status needs to be modified.
Return values:
Not Applicable.

_extern void LLI6TxIPPacket | ( | PBM_Pkt * | pPkt,
 |  | HANDLE | hLLI6,
 |  | NETIF_DEVICE * | ptr_device,
 |  | IP6N | Address
 | ) |  |

Description
This function is called from the IPv6 stack to resolve the IPv6 address to a corresponding MAC address and push the packet to the drivers.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | pPkt | Pointer to the packet which needs to be transmitted.
[in] | hLLI6 | Handle to the LLI6 Entry.
[in] | ptr_device | Pointer to the Network Interface Object on which the packet needs to be sent out.
[in] | Address | The Destination Address of the packet.
Return values:
Not Applicable.

_extern void LLI6Update | ( | HANDLE | hLLI6,
 |  | UINT8 * | mac_address,
 |  | UINT32 | RxPktType,
 |  | UINT32 | Flags
 | ) |  |

Description
The function is used to update the LLI6 Entry. This is called whenever one of the Neighbour Discovery packets are received:- a) NS b) NA c) RS d) RA e) Redirect. The function executes the Neighbor Unreachability Detection and Is Router State Machine.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | hLLI6 | Handle to the LLI6 Entry being updated.
[in] | mac_address | MAC Address which needs to be updated. This can be NULL in which case only the IsRouterStateMachine is executed; the Neighbor Unreachability State Machine is bypassed.
[in] | RxPktType | The packet type received which has triggered a call to this function.
[in] | Flags | The flags field in the NA Header received. 0 for all other packets.
Return values:
Not Applicable.


NDK Stack Documentation: inc/stack/inc/mldif.h File Reference

inc/stack/inc/mldif.h File Reference

Common structures and definitions used by the MLDv6 . More...

Functions

_extern int | MLDTestGroup (NETIF_DEVICE *ptr_device, IP6N multicast_address)
_extern int | MLDJoinGroup (NETIF_DEVICE *ptr_device, IP6N multicast_address)
_extern int | MLDLeaveGroup (NETIF_DEVICE *ptr_device, IP6N multicast_address)

Detailed Description

Common structures and definitions used by the MLDv6 .

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

_extern int MLDJoinGroup | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | multicast_address
 | ) |  |

Description
This function is used to join a multicast group over a specific interface.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | The pointer to the NIMU Network Interface object over which the multicast address is being joined.
[in] | multicast_address | IPv6 Multicast address being joined.
Return values:
0 | - Success
<0 | - Error

_extern int MLDLeaveGroup | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | multicast_address
 | ) |  |

Description
This function is used to leave a multicast group over a specific interface.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | The pointer to the NIMU Network Interface object over which the multicast address is being left.
[in] | multicast_address | IPv6 Multicast address being left.
Return values:
0 | - Success
<0 | - Error

_extern int MLDTestGroup | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | multicast_address
 | ) |  |

Description
This function is called from the IPv6 Stack receive handler to verify if the address specified here has been joined or not?

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | Pointer to the Network Interface object on which the IPv6 packet was rxed.
[in] | multicast_address | This is the IPAddress from the Destination field of the IPv6 Packet.
Return values:
1 | - Multicast Group has been joined
0 | - The group has not been joined.


NDK Stack Documentation: inc/stack/inc/route6if.h File Reference

inc/stack/inc/route6if.h File Reference

Common structures and definitions used for the ROUTE6 Module. More...

Data Structures

struct | RT6_ENTRY
The structure describes the ROUTE6 Entry. More...

Functions

_extern HANDLE | Rt6Create (UINT32 flags, IP6N Addr, IP6N Mask, IP6N NextHop, UINT8 *mac_address, NETIF_DEVICE *ptr_device, UINT32 ValidLifetime)
_extern HANDLE | Rt6Modify (HANDLE hRoute6, UINT32 flags, IP6N IPAddr, IP6N IPMask, IP6N NextHop, UINT8 *mac_address, NETIF_DEVICE *ptr_device, UINT32 ValidLifetime)
_extern void | Rt6Update (HANDLE hRoute, UINT32 RxPacketType, UINT8 *mac_address, UINT32 Flags, UINT32 Lifetime)
_extern HANDLE | Rt6Find (UINT32 Flags, IP6N IPAddress, NETIF_DEVICE *ptr_device)
_extern HANDLE | Rt6FindDefaultRouter (IP6N RouterAddress, NETIF_DEVICE *ptr_device)
_extern void | Rt6Free (HANDLE hRoute6)
_extern void | Rt6FlushInterfaceRoutes (NETIF_DEVICE *ptr_device)
_extern HANDLE | Rt6GetIF (HANDLE hRoute6)
_extern HANDLE | Rt6GetLLI (HANDLE hRoute6)
_extern UINT32 | Rt6GetMTU (HANDLE hRoute6)
_extern int | Rt6IsLocalRoute (HANDLE hRoute)
_extern void | Rt6IncRefCount (HANDLE hRoute6)
_extern int | Rt6IsDefaultRoute (HANDLE hRoute6)
_extern void | Rt6GetNetworkAddr (HANDLE hRoute6, IP6N *IPNet)
_extern RT6_ENTRY * | Rt6GetTable (void)
_extern void | Rt6CleanTable (RT6_ENTRY *ptr_list)

Detailed Description

Common structures and definitions used for the ROUTE6 Module.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

_extern void Rt6CleanTable ( RT6_ENTRY * ptr_list )

Description
The function is called to clean the memory allocated by a previous call to Route6GetTable. The function cleans the replicated copy of the routing table. This function is available to system developers and can be called from outside kernel mode.

See also:
Route6GetTable
Parameters:
[in] ptr_list This is the head of the duplicate list which will be cleaned up.
Return values:
Not Applicable

_extern HANDLE Rt6Create | ( | UINT32 | flags,
 |  | IP6N | IPAddr,
 |  | IP6N | IPMask,
 |  | IP6N | NextHop,
 |  | UINT8 * | mac_address,
 |  | NETIF_DEVICE * | ptr_device,
 |  | UINT32 | ValidLifetime
 | ) |  |

Description
The function creates a new routing entry.

Parameters:
[in] | flags | Specifies flags.
[in] | IPAddr | This is the IPv6 address for which the route is created.
[in] | IPMask | This is the IPv6 subnet mask.
[in] | NextHop | This is the Next Hop gateway associated with the route.
[in] | mac_address | This is the MAC Address associated with the ROUTE. This can be NULL.
[in] | ptr_device | This is the interface on which the route is created.
[in] | ValidLifetime | Timeout for which this route will remain valid. This is VALID only for CLONING Routes. Once the CLONING Route is timed out all HOST routes derived from this will also be removed. If this is INFINITE_LT then the routes are always active.
Return values:
Success | - Handle to the new route
Error | - 0

_extern HANDLE Rt6Find | ( | UINT32 | Flags,
 |  | IP6N | IPAddress,
 |  | NETIF_DEVICE * | ptr_device
 | ) |  |

Description
The function searches the routing table for a route to be used.

Parameters:
[in] Flags Flags associated with the routing entry. Specifies the SEARCH Parameters that can be used to find a ROUTING Entry. FLG_RTE_HOST -> Search ROUTE6 table for only HOST routes FLG_RTE_CLONING -> Search ROUTE6 table for only NETWORK routes 0 -> Search all ROUTES (Host & Network) but Network routes are not cloned. FLG_RTF_CLONE -> Invalid. FLG_RTE_GATEWAY -> Invalid. (Use the Rt6FindDefaultRouter API)
The flags should be SET to FLG_RTE_HOST | FLG_RTE_CLONING | FLG_RTE_GATEWAY | FLG_RTF_CLONE From the IPv6 Routing Lookup API; since this will search all Valid Routes and if the ROUTE is a CLONING Route then it will be CLONED (FLG_RTF_CLONE) too.
Parameters:
[in] | IPAddress | The IPv6 address for which we are trying to find a ROUTE.
[in] | ptr_device | Device on which the route exists. This can be NULL.
Return values:
Match | - Handle to the routing 6 entry
No | Match - 0

_extern HANDLE Rt6FindDefaultRouter | ( | IP6N | RouterAddress,
 |  | NETIF_DEVICE * | ptr_device
 | ) |  |

Description
The function checks if the Router Address Matches an entry in the default Router List.

Parameters:
[in] | RouterAddress | The Default router address we are trying to find.
[in] | ptr_device | Device on which the default router is being searched. If specified as NULL; then the device is wildcarded and all default routes are searched.
Return values:
Match | - Handle to the Default Router
No | Match - 0

_extern void Rt6FlushInterfaceRoutes ( NETIF_DEVICE * ptr_device )

Description
The function cleans all routes on a specific interface

Parameters:
[in] ptr_device Pointer to the device for which all routes will be cleaned.
Return values:
Not Applicable.

_extern void Rt6Free ( HANDLE hRoute6 )

Description
The function frees an existing routing entry.

Parameters:
[in] hRoute6 Route to be deleted.
Return values:
Not Applicable.

_extern HANDLE Rt6GetIF ( HANDLE hRoute6 )

Description
The function gets the Interface handle associated with the Route6 object.

Parameters:
[in] hRoute6 The handle to the route6 object whose Interface handle we are interested in.
Return values:
Success | - Handle to the Interface
Error | - 0

_extern HANDLE Rt6GetLLI ( HANDLE hRoute6 )

Description
The function returns the LLIv6 entry given the Route6 handle

Parameters:
[in] hRoute6 The handle to the route6 object whose LLIv6 handle we are interested in.
Return values:
Success | - Handle to the LLIv6
Error | - 0

_extern UINT32 Rt6GetMTU ( HANDLE hRoute6 )

Description
The function gets the MTU associated with the Route6 object.

Parameters:
[in] hRoute6 The handle to the ROUTE6 Object whose MTU we are interested in.
Return values:
Success | - MTU of the route.
Error | - 0

_extern void Rt6GetNetworkAddr | ( | HANDLE | hRoute6,
 |  | IP6N * | IPNet
 | ) |  |

Description
The function returns the Network Address associated with a route.

Parameters:
[in] | hRoute6 | The handle to the ROUTE6 Object.
[out] | IPNet | The handle to the Network Address to be returned.
Return values:
None

_extern RT6_ENTRY* Rt6GetTable ( void )

Description
The function replicates the IPv6 Routing Table and creates a duplicate copy which is then returned back to the callee. The replicated routing table list needs to be cleaned by the callee. This function is available to system developers and can be called from outside kernel mode.

See also:
Route6CleanTable
Return values:
Head of the copy of the IPv6 Routing Table

_extern void Rt6IncRefCount ( HANDLE hRoute6 )

Description
The function increments the reference count for a route6.

Parameters:
[in] hRoute6 The handle to the route6 object whose reference counter needs to be incremented.
Return values:
Success | - Handle to the Interface
Error | - 0

_extern int Rt6IsDefaultRoute ( HANDLE hRoute6 )

Description
The function checks if the route specified is a default route?

Parameters:
[in] hRoute6 The handle to the ROUTE6 Object.
Return values:
Success | - 1.
Error | - 0

_extern int Rt6IsLocalRoute ( HANDLE hRoute )

Description
The function checks if the route specified is LOCAL or not?

Parameters:
[in] hRoute The handle to the ROUTE6 Object.
Return values:
Success | - MTU of the route.
Error | - 0

_extern HANDLE Rt6Modify | ( | HANDLE | hRoute6,
 |  | UINT32 | flags,
 |  | IP6N | IPAddr,
 |  | IP6N | IPMask,
 |  | IP6N | NextHop,
 |  | UINT8 * | mac_address,
 |  | NETIF_DEVICE * | ptr_device,
 |  | UINT32 | ValidLifetime
 | ) |  |

Description
The function modifies an existing routing entry.

Parameters:
[in] | hRoute6 | Handle to the route which is to be modified.
[in] | flags | Specifies flags.
[in] | IPAddr | This is the IPv6 address for which the route is created.
[in] | IPMask | This is the IPv6 subnet mask.
[in] | NextHop | This is the Next Hop gateway associated with the route.
[in] | mac_address | This is the MAC Address associated with the ROUTE. This can be NULL.
[in] | ptr_device | This is the interface on which the route is created.
[in] | ValidLifetime | Timeout for which this route will remain valid. This is VALID only for CLONING Routes. Once the CLONING Route is timed out all HOST routes derived from this will also be removed. If this is INFINITE_LT then the routes are always active.
Return values:
Success | - Handle to the modified route
Error | - 0

_extern void Rt6Update | ( | HANDLE | hRoute,
 |  | UINT32 | RxPacketType,
 |  | UINT8 * | mac_address,
 |  | UINT32 | Flags,
 |  | UINT32 | Lifetime
 | ) |  |

Description
The function is used to update the ROUTE6 and corresponding LLI6 Entry. This is called whenever a Neighbor Discovery Packet is received and the Target Address is meant for us.

Parameters:
[in] | hRoute | Handle to the route we need to update.
[in] | RxPacketType | Type of NDISC Packet received.
[in] | mac_address | MAC Address information if present from the NDISC Packet.
[in] | Flags | The flags field in the Received NA Header. Its set to 0 for all other packets.
[in] | Lifetime | New Lifetime value to be updated with valid only for RA. Else ignored in this function.
Return values:
Not Applicable


NDK Stack Documentation: src/nettools/daemon/daemon.c File Reference

src/nettools/daemon/daemon.c File Reference

This file implements a simple network daemon. More...

Data Structures

struct | DREC
The structure describes the Daemon Entry. More...
struct | _child
The structure describes the data instance for daemon child task. More...

Typedefs

typedef _child | CHILD
The structure describes the data instance for daemon child task.

Functions

HANDLE | DaemonNew (uint Type, IPN LocalAddress, uint LocalPort, int(*pCb)(SOCKET, UINT32), uint Priority, uint StackSize, UINT32 Argument, uint MaxSpawn)
void | DaemonFree (HANDLE hEntry)
HANDLE | Daemon6New (uint Type, IP6N LocalAddress, uint LocalPort, int(*pCb)(SOCKET, UINT32), uint Priority, uint StackSize, UINT32 Argument, uint MaxSpawn)
void | Daemon6Free (HANDLE hEntry)

Detailed Description

This file implements a simple network daemon.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void Daemon6Free ( HANDLE hEntry )

Description
The function is to used cleanup a previously created V6 daemon.

Parameters:
[in] hEntry This is the handle to the daemon which was previously created using Daemon6New
See also:
Daemon6New
Return values:
Not Applicable.

HANDLE Daemon6New | ( | uint | Type,
 |  | IP6N | LocalAddress,
 |  | uint | LocalPort,
 |  | int(*)(SOCKET, UINT32) | pCb,
 |  | uint | Priority,
 |  | uint | StackSize,
 |  | UINT32 | Argument,
 |  | uint | MaxSpawn
 | ) |  |

Description
The function creates a V6 Daemon.

Parameters:
[in] Type This is the type of socket being opened through the daemon. In the case of IPv6 the following types are supported
  • SOCK_STREAM Use this for TCP Sockets.
  • SOCK_DGRAM Use this for UDP Sockets.
[in] | LocalAddress | This is the Local Address to which the socket will be bound to. In most cases this is typically passed as IPV6_UNSPECIFIED_ADDRESS
[in] | LocalPort | This is the Local Port to serve (cannot be NULL)
[in] | pCb | Call back function which is to be invoked.
[in] | Priority | Priority of new task to create for callback function
[in] | StackSize | Stack size of new task to create for callback function
[in] | Argument | Argument (besides socket) to pass to callback function
[in] | MaxSpawn | Maximum number of callback function instances (must be 1 for UDP)
Return values:
Success | - Handle to the spawned Daemon.
Error | - 0

void DaemonFree ( HANDLE hEntry )

Description
The function is to used cleanup a previously created V4 daemon.

Parameters:
[in] hEntry This is the handle to the daemon which was previously created using DaemonNew
See also:
DaemonNew
Return values:
Not Applicable.

HANDLE DaemonNew | ( | uint | Type,
 |  | IPN | LocalAddress,
 |  | uint | LocalPort,
 |  | int(*)(SOCKET, UINT32) | pCb,
 |  | uint | Priority,
 |  | uint | StackSize,
 |  | UINT32 | Argument,
 |  | uint | MaxSpawn
 | ) |  |

Description
The function creates a V4 Daemon.

Parameters:
[in] | Type | This is the type of socket being opened through the daemon. In the case of IPv4 all socket types are supported i.e. SOCK_STREAM, SOCK_STREAMNC and SOCK_DGRAM.
[in] | LocalAddress | This is the Local Address to which the socket will be bound to. In most cases this is typically passed as NULL.
[in] | LocalPort | This is the Local Port to serve (cannot be NULL)
[in] | pCb | Call back function which is to be invoked.
[in] | Priority | Priority of new task to create for callback function
[in] | StackSize | Stack size of new task to create for callback function
[in] | Argument | Argument (besides socket) to pass to callback function
[in] | MaxSpawn | Maximum number of callback function instances (must be 1 for UDP)
Return values:
Success | - Handle to the spawned Daemon.
Error | - 0


NDK Stack Documentation: src/nettools/tftp/tftp6.c File Reference

src/nettools/tftp/tftp6.c File Reference

The file implements the TFTP protocol over IPv6. More...

Functions

int Nt6TftpRecv (IP6N TftpIP, UINT32 scope_id, char *szFileName, char *FileBuffer, UINT32 *FileSize, UINT16 *pErrorCode)

Detailed Description

The file implements the TFTP protocol over IPv6.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

int Nt6TftpRecv | ( | IP6N | TftpIP,
 |  | UINT32 | scope_id,
 |  | char * | szFileName,
 |  | char * | FileBuffer,
 |  | UINT32 * | FileSize,
 |  | UINT16 * | pErrorCode
 | ) |  |

Description
The function retreives a file using TFTP.

Parameters:
[in] | TftpIP | IPv6 Address of the Server.
[in] | scope_id | This is the scope id. If the IP Address of the server is Link Local then this needs to be populated to the device index for the interface on which the TFTP Server is present. For Global Addresses this is ignored.
[in] | szFileName | File Name to be retreived.
[in] | FileBuffer | Buffer in which the downloaded file is stored.
[in] | FileSize | Size of the buffer
[out] | pErrorCode | Size of the buffer
Return values:
Success | - 1
File | downloaded exceeds buffer - 0
Error | - <0


NDK Stack Documentation: src/os/intmgmt.c File Reference

src/os/intmgmt.c File Reference

Interrupt Management wrapper written to abstract out OS (BIOS) specific interrupt management calls. More...

Functions

Uint32 | Interrupt_add (IntSetup *myIntSetup)
Uint32 | Interrupt_delete (IntSetup *myIntSetup)
Uint32 | Interrupt_enable (IntSetup *myIntSetup)
Uint32 | Interrupt_disable (IntSetup *myIntSetup)

Detailed Description

Interrupt Management wrapper written to abstract out OS (BIOS) specific interrupt management calls.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

Uint32 Interrupt_add ( IntSetup * myIntSetup )

Interrupt_add
Validates the interrupt setup parameters and sets up the interrupt using BIOS. Uses the Hardware Interrupt Selector (HWI) selector module of BIOS if a single system event is being mapped directly to a DSP interrupt vector. Alternatively, this function chooses the Event Combiner Manager (ECM) module of BIOS for setting up interrupts, if more than one system event needs to be combined into a DSP interrupt vector.

Parameters:
[in] myIntSetup Pointer to the Interrupt Setup object filled in by the user.
Return values:
1 - Invalid Interrupt Setup Parameters 0 - Success

Uint32 Interrupt_delete ( IntSetup * myIntSetup )

Interrupt_delete
Currently just a placeholder. There is no known way to delete interrupts setup already, other than remapping the same system events to a different DSP interrupt number line.

Parameters:
[in] myIntSetup Pointer to the Interrupt Setup object filled in by the user.
Return values:
0 - Success (Always returns success)

Uint32 Interrupt_disable ( IntSetup * myIntSetup )

Interrupt_disable
Validates the interrupt setup parameters and disables the interrupt using BIOS defined constructs.

Parameters:
[in] myIntSetup Pointer to the Interrupt Setup object filled in by the user.
Return values:
1 - Invalid Interrupt Setup Parameters 0 - Success

Uint32 Interrupt_enable ( IntSetup * myIntSetup )

Interrupt_enable
Validates the interrupt setup parameters and enables the interrupt using BIOS defined constructs.

Parameters:
[in] myIntSetup Pointer to the Interrupt Setup object filled in by the user.
Return values:
1 - Invalid Interrupt Setup Parameters 0 - Success


NDK Stack Documentation: src/os/jumbo_pbm.c File Reference

src/os/jumbo_pbm.c File Reference

Jumbo Packet Buffer Manager. Ths file has functions which handle dynamic memory management (heap allocations) for packet buffer sizes greater than 3K. These functions are typically called for buffer management of jumbo frames greater than 3K size. More...

Data Structures

struct | JUMBO_MEMORYBLOCK
This structure defines the Jumbo memory block structure. More...
struct | JUMBO_PITENTRY
This structure defines the Page Information entry. More...

Functions

int | _jumbo_mmInit ()
void * | jumbo_mmAlloc (uint Size)
void | jumbo_mmFree (void *p)
void | _jumbo_mmCheck (uint CallMode, int(*pPrn)(const char *,...))

Detailed Description

Jumbo Packet Buffer Manager. Ths file has functions which handle dynamic memory management (heap allocations) for packet buffer sizes greater than 3K. These functions are typically called for buffer management of jumbo frames greater than 3K size.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void _jumbo_mmCheck | ( | uint | CallMode,
 |  | int(*)(const char *,...) | pPrn
 | ) |  |

Description
This function iterates through the PIT table and dumps the current memory usage stats according to the arguments specified.

Parameters:
[in] | CallMode | This argument specifies the type of stats / operation that needs to be performed by this function. The 3 supported call modes are: MMCHECK_MAP : Map out allocated memory, but don't dump ID's MMCHECK_DUMP : Dump allocated block ID's MMCHECK_SHUTDOWN : Dump allocated block's & free
[in] | pPrn | Callback function pointer to be notified.
Return values:
None.

int _jumbo_mmInit ( )

Description
This function initializes the jumbo frame memory system.

Parameters:
[in] None
Return values:
Always returns 1 to indicate success.

void* jumbo_mmAlloc ( uint Size )

Description
This function allocates the required memory size from jumbo memory area.

Parameters:
[in] Size Page Index in the Page Info Table.
Return values:
Returns the pointer to allocated memory block.

void jumbo_mmFree ( void * p )

Description
This function frees the memory pointed to by the arguments to it.

Parameters:
[in] p Pointer to the memory block that is to be freed.
Return values:
None.


NDK Stack Documentation: src/stack/bind6/bind6.c File Reference

src/stack/bind6/bind6.c File Reference

The file implements the BIND6 Module. The BIND6 Module is responsible for keeping track of all LOCAL IPv6 Addresses which have been assigned to the interfaces. More...

Functions

void | Bind6Msg (uint Msg)
HANDLE | Bind6FindByHost (NETIF_DEVICE *ptr_device, IP6N IP)
HANDLE | Bind6FindByNet (NETIF_DEVICE *ptr_device, IP6N IPNet)
void | Bind6Free (HANDLE hbind6Obj)
HANDLE | Bind6New (NETIF_DEVICE *ptr_device, IP6N IPHost, IP6N IPMask, UINT32 ValidLifetime, UINT32 PreferredLifetime, UINT8 IsAnycast)
int | Bind6DADCheck (NETIF_DEVICE *ptr_device, IP6N TargetAddress)
NETIF_DEVICE * | Bind6GetInterfaceHandle (HANDLE hbind6Obj)
HANDLE | Bind6FindByIF (NETIF_DEVICE *ptr_device)
int | Bind6GetLinkLocalAddress (NETIF_DEVICE *ptr_device, IP6N *IPAddress)
int | Bind6GetGlobalAddress (NETIF_DEVICE *ptr_device, IP6N IPNetworkAddr, IP6N *IPAddress)
IP6N | Bind6IF2IPHost (NETIF_DEVICE *ptr_device)
UINT32 | Bind6GetLifetime (HANDLE hbind6Obj)
void | Bind6SetLifetime (HANDLE hbind6Obj, UINT32 Lifetime)
BIND6_ENTRY * | Bind6GetTable (void)
void | Bind6CleanTable (BIND6_ENTRY *ptr_list)

Detailed Description

The file implements the BIND6 Module. The BIND6 Module is responsible for keeping track of all LOCAL IPv6 Addresses which have been assigned to the interfaces.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void Bind6CleanTable ( BIND6_ENTRY * ptr_list )

Description
The function is called to clean the memory allocated by a previous call to Route6GetTable. The function cleans the replicated copy of the routing table. This function is available to system developers and can be called from outside kernel mode.

See also:
Bind6GetTable
Parameters:
[in] ptr_list This is the head of the duplicate list which will be cleaned up.
Return values:
Not Applicable

int Bind6DADCheck | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | TargetAddress
 | ) |  |

Description
The function is called by the ICMP6 Module to check if the received address passes or fails the DAD Check.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | The pointer to the network interface device on which the DAD needs to be stopped.
[in] | TargetAddress | The IP Address matching the Target Address in the NS/NA request.
Return values:
Success | (No DAD Detected) - 0
Error | (DAD Detected) - <0

HANDLE Bind6FindByHost | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | IP
 | ) |  |

Description
Find a binding by searching IF handle with IP Host addr This is an external NDK Stack API and is available to other modules. In this we search only addresses which have passed the DAD Procedure since these are VALID.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | Pointer to the NIMU Network Interface object which has to be searched for the IPv6 address.
[in] | IP | IPv6 Address to be searched for.
Return values:
Match | - Handle to the BIND6_ENTRY Object
No | Match - 0

HANDLE Bind6FindByIF ( NETIF_DEVICE * ptr_device )

Description
The function searches the BIND6_ENTRY objects in the system for a specific interface.

This is for *internal* NDK Stack Usage.

Parameters:
[in] ptr_device The Network interface object whose BIND6_ENTRY Object we are interested in.
Return values:
Handle to the BIND6_ENTRY object

HANDLE Bind6FindByNet | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | IPNet
 | ) |  |

Description
Find a binding by searching IF handle with IP Net addr This is an external NDK Stack API and is available to other modules. In this we search only addresses which have passed the DAD Procedure since these are VALID.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | Pointer to the NIMU Network Interface object which has to be searched for the IPv6 address.
[in] | IPNet | IPv6 Network Address we are searching for.
Return values:
Match | - Handle to the BIND6_ENTRY Object
No | Match - 0

void Bind6Free ( HANDLE hbind6Obj )

Description
The function is used to close an IPv6 binding.

This is for *internal* NDK Stack Usage.

Parameters:
[in] hbind6Obj The BIND6_ENTRY Object which is to be freed up.
Return values:
Not Applicable.

int Bind6GetGlobalAddress | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | IPNetworkAddr,
 |  | IP6N * | IPAddress
 | ) |  |

Description
The function searches the BIND6 object and returns a GLOBAL Address for the device. An Error Condition conveys the fact either IPv6 has not been initialized on this interface or there is no GLOBAL Address configured on the interface

Parameters:
[in] | ptr_device | The Network interface object whose LINK LOCAL Address is required.
[in] | IPNetworkAddr | The Network Mask of the IP Address that needs to be retuned.
[out] | IPAddress | The GLOBAL IP Address is returned
Return values:
Success | - 0
Error | - -1

NETIF_DEVICE* Bind6GetInterfaceHandle ( HANDLE hbind6Obj )

Description
The function returns the interface handle given the BIND6_ENTRY object.

This is for *internal* NDK Stack Usage.

Parameters:
[in] hbind6Obj The BIND6_ENTRY Object whose interface handle we need.
Return values:
Success | - Handle of the interface
Error | - 0

UINT32 Bind6GetLifetime ( HANDLE hbind6Obj )

Description
The function returns the Lifetime matching the BIND6_ENTRY object.

This is for *internal* NDK Stack Usage.

Parameters:
[in] hbind6Obj Handle to the BIND6_ENTRY object whose lifetime we need to get
Return values:
Lifetime value associated with the BIND6_ENTRY object.

int Bind6GetLinkLocalAddress | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N * | IPAddress
 | ) |  |

Description
The function searches the BIND6 object and returns a LINK LOCAL Address for the device. An Error Condition conveys the fact that there IPv6 has not been initialized on this interface.

Parameters:
[in] | ptr_device | The Network interface object whose LINK LOCAL Address is required.
[out] | IPAddress | The Link Local IP Address is returned
Return values:
Success | - 0
Error | - -1

BIND6_ENTRY* Bind6GetTable ( void )

Description
The function replicates the BIND6 Table and creates a duplicate copy which is then returned back to the callee. The replicated BIND table list needs to be cleaned by the callee. This function is available to system developers and can be called from outside kernel mode.

See also:
Bind6CleanTable
Return values:
Head of the copy of the BIND6

IP6N Bind6IF2IPHost ( NETIF_DEVICE * ptr_device )

Description
The function returns the IPv6 address matching the BIND6_ENTRY object.

This is for *internal* NDK Stack Usage.

Parameters:
[in] ptr_device The Network interface object whose IPv6 Address we are interested in.
Return values:
Success | - The IPv6 Address matching the interface
Error | - IPV6_UNSPECIFIED_ADDRESS (::)

void Bind6Msg ( uint Msg )

Description
Sevices intialization and resource messages for the BIND6 Module

This is for *internal* NDK Stack Usage.

Parameters:
[in] Msg The message event which needs to be handled.
Return values:
Not Applicable.

HANDLE Bind6New | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | IPHost,
 |  | IP6N | IPMask,
 |  | UINT32 | ValidLifetime,
 |  | UINT32 | PreferredLifetime,
 |  | UINT8 | IsAnycast
 | ) |  |

Description
This function is used to create a new BIND6_ENTRY Object with the specified properties.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | Pointer to the NIMU Network Interface object on which the BIND6_ENTRY object is to be created.
[in] | IPHost | IPv6 Address
[in] | IPMask | IPv6 Mask
[in] | ValidLifetime | Valid Lifetime for which the address remains VALID
[in] | PreferredLifetime | Preferred Lifetime for which the address remains VALID
[in] | IsAnycast | Flag set to 1 if the address is an ANYCAST Address; else set to 0.
Return values:
Success | - Handle to the new BIND6_ENTRY Object
Error | - 0

void Bind6SetLifetime | ( | HANDLE | hbind6Obj,
 |  | UINT32 | Lifetime
 | ) |  |

Description
The function sets the Lifetime matching the BIND6_ENTRY object.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | hbind6Obj | Handle to the BIND6_ENTRY object whose lifetime we need to get
[in] | Lifetime | New Lifetime value to be associated.
Return values:
Not Applicable.


NDK Stack Documentation: src/stack/fdt/socket.c File Reference

src/stack/fdt/socket.c File Reference

This file handles core BSD style socket calls and pipes. More...

Functions

SOCKET | accept (SOCKET s, PSA pName, int *plen)
int | bind (SOCKET s, PSA pName, int len)
int | connect (SOCKET s, PSA pName, int len)
int | getpeername (SOCKET s, PSA pName, int *plen)
int | getsockname (SOCKET s, PSA pName, int *plen)
int | listen (SOCKET s, int maxcon)
int | recv (SOCKET s, void *pbuf, int size, int flags)
int | recvfrom (SOCKET s, void *pbuf, int size, int flags, PSA pName, int *plen)
int | send (SOCKET s, void *pbuf, int size, int flags)
int | getsendncbuff (SOCKET s, UINT32 bufSize, void **phBuf, HANDLE *phPkt)
int | sendnc (SOCKET s, void *pbuf, int size, HANDLE hPkt, int flags)
void | sendncfree (HANDLE hFrag)
int | recvnc (SOCKET s, void **ppbuf, int flags, HANDLE *phFrag)
int | recvncfrom (SOCKET s, void **ppbuf, int flags, PSA pName, int *plen, HANDLE *phFrag)
void | recvncfree (HANDLE hFrag)
int | sendto (SOCKET s, void *pbuf, int size, int flags, PSA pName, int len)
int | shutdown (SOCKET s, int how)
SOCKET | socket (int domain, int type, int protocol)
int | getsockopt (SOCKET s, int level, int op, void *pbuf, int *pbufsize)
int | setsockopt (SOCKET s, int level, int op, void *pbuf, int bufsize)
int | pipe (HANDLE *pfdret1, HANDLE *pfdret2)

Detailed Description

This file handles core BSD style socket calls and pipes.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

SOCKET accept | ( | SOCKET | s,
 |  | PSA | pName,
 |  | int * | plen
 | ) |  |

Description
This function extracts the first pending connection request in the socket queue and spawns a new socket to accept the incoming connection request. This function call is valid only for connection-oriented socket types like TCP.

Parameters:
[in] | s | Handle to local bound socket that is waiting/listening on any incoming connections. The argument s is a socket that has been created using "socket" function call, bound to a local address using "bind" and listening for connections with "listen" function calls.
[in] | pName | Handle to the sockaddr structure that holds the peer host's address and port information.
[in] | plen | Holds the length of the sockaddr structure being passed as argument to this function.
[out] | pName | Handle to the sockaddr structure that holds the connected peer's address and port information. The exact format of this is based on the address family. Valid only when this function returns success.
[out] | plen | Holds the length of the connected peer's sockaddr structure. The exact length depends on the address family of the socket created. Valid only when the function returns success.
Return values:
Success | - Handle to the new socket created
Error | - INVALID_SOCKET

int bind | ( | SOCKET | s,
 |  | PSA | pName,
 |  | int | len
 | ) |  |

Description
This function assigns a name to an unnamed socket. When a socket is created using "socket()" call, it exists in a name space (address family) but has no name assigned. The bind() function requests that name be assigned to the socket.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | pName | Handle to the sockaddr structure that holds the local address and port information that needs to be assigned to the socket.
[in] | len | Holds the length of the sockaddr structure being passed as argument to this function. This in turn depends on the address family of the socket.
Return values:
Success | - 0
Error | - -1

int connect | ( | SOCKET | s,
 |  | PSA | pName,
 |  | int | len
 | ) |  |

Description
This function establishes a logical connection from the socket specified by s to the foreign name (address) specified by pName.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | pName | Handle to the sockaddr structure that holds the remote host's address and port information to which the socket needs to connect to. For UDP/SOCK_DGRAM socket pName specifies the address to which packets would be sent by default or can be received from. For TCP/SOCK_STREAM socket this call attempts to make a connection to the socket that is bound to address specified by pName.
[in] | len | Holds the length of the sockaddr structure being passed as argument to this function. This in turn depends on the address family of the socket.
Return values:
Success | - 0
Error | - -1

int getpeername | ( | SOCKET | s,
 |  | PSA | pName,
 |  | int * | plen
 | ) |  |

Description
The getpeername() function retrieves the peer address of the specified socket, store this address in the sockaddr structure pointed to by the pName argument, and store the length of this address in plen argument.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[out] | pName | Handle to the sockaddr structure that holds the remote host's address and port information to which the socket is connected to. Valid only when this function returns success.
[out] | plen | Holds the length of the sockaddr structure being passed as result from this function. Valid only when this function returns success.
Return values:
Success | - 0
Error | - -1

int getsendncbuff | ( | SOCKET | s,
 |  | UINT32 | bufSize,
 |  | void ** | phBuf,
 |  | HANDLE * | phPkt
 | ) |  |

Description
This function allocates bufSize bytes memory for the data buffer and required memory for the packet buffer to hold this data. On successful memory allocation, it initializes the phBuf and phPkt pointers with the data buffer and packet buffer handles. The data buffer obtained from this API can be used by the application to fill in required data. The application then would need to use the data buffer and packet buffer handles in its call to sendnc() API to send the packet out without any copy on transmit path by the stack. The packet and data buffers are freed up automatically once the packet transmission is completed in the ethernet driver. However, if for some reason the application would like to free the buffer and packet obtained using this call, it can to do so by passing the packet buffer handle to sendncfree() API call and it would free up both the packet and data buffers.

This API is currently only supported for AF_RAWETH family sockets.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | bufSize | Size of data buffer to allocate memory for.
[in] | phBuf | Pointer to data buffer handle in which the application can fill in the required data to send using sendnc() API.
*
Parameters:
[in] phPkt Pointer to the packet buffer handle which holds the data buffer in turn.
Return values:
Success | - 0
Error | - -1

int getsockname | ( | SOCKET | s,
 |  | PSA | pName,
 |  | int * | plen
 | ) |  |

Description
The getsockname() function retrieves the local address of the specified socket, store this address in the sockaddr structure pointed to by the pName argument, and store the length of this address in plen argument.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[out] | pName | Handle to the sockaddr structure that holds the local host's address and port information to which the socket is bound to. Valid only when this function returns success.
[out] | plen | Holds the length of the sockaddr structure being passed as result from this function. Valid only when this function returns success.
Return values:
Success | - 0
Error | - -1

int getsockopt | ( | SOCKET | s,
 |  | int | level,
 |  | int | op,
 |  | void * | pbuf,
 |  | int * | pbufsize
 | ) |  |

Description
This function returns the options associated with a socket.

Parameters:
[in] | s | Socket handle
[in] | level | Option level (SOL_SOCKET, IPPROTO_IP, IPPROTO_IPV6,IPPROTO_TCP)
[in] | op | Socket option to get
[in] | pbuf | Pointer to memory buffer
[in] | pbufsize | Pointer to size of memory buffer
Return values:
Success | - 0
Error | - -1

int listen | ( | SOCKET | s,
 |  | int | maxcon
 | ) |  |

Description
This function enables the socket to wait for any incoming connection requests. It also configures the size of the pending connection request queue of the socket. This call is applicable only for connection oriented sockets (SOCK_STREAM/TCP).

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | maxcon | Specifies the maximum length of the queue of pending connections.
Return values:
Success | - 0
Error | - -1

int pipe | ( | HANDLE * | pfdret1,
 |  | HANDLE * | pfdret2
 | ) |  |

Description
Creates a pre-connected full duplex pipe. The returned file descriptors can be used with all the fd file descriptor functions, as well as the send() and recv() socket functions.

Parameters:
[in] | pfdret1 | Pointer to file descriptor to first end of pipe.
[in] | pfdret2 | Pointer to file descriptor to second end of pipe.
Return values:
Success | - 0
Error | - -1

int recv | ( | SOCKET | s,
 |  | void * | pbuf,
 |  | int | size,
 |  | int | flags
 | ) |  |

Description
This function is used to read data received on a specified socket.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | pbuf | Specifies the buffer to which the data has to be copied to.
[in] | size | Specifies the maximum size of the buffer.
[in] | flags | Options flags
Return values:
Success | - Number of bytes of data received successfully
Error | - -1

int recvfrom | ( | SOCKET | s,
 |  | void * | pbuf,
 |  | int | size,
 |  | int | flags,
 |  | PSA | pName,
 |  | int * | plen
 | ) |  |

Description
This function attempts to receive data from a socket. It is normally called with unconnected, non-connection oriented sockets. The data is placed into the buffer specified by pbuf, up to a maximum length specified by size. The options in flags can be used to change the default behavior of the operation. The name (address) of the sender is written to pName.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | pbuf | Specifies the buffer to which the data has to be copied to.
[in] | size | Specifies the maximum size of the buffer.
[in] | flags | Options flags
[out] | pName | Pointer to place name (address) of sender
[out] | plen | Pointer to size of pName
Return values:
Success | - Number of bytes of data received successfully
Error | - -1

int recvnc | ( | SOCKET | s,
 |  | void ** | ppbuf,
 |  | int | flags,
 |  | HANDLE * | phFrag
 | ) |  |

Description
This function is used to read data received on a specified socket without copying. This is supported only on IPv4/AF_INET family and Raw ethernet/AF_RAWETH sockets.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[out] | ppbuf | Pointer to receive data buffer pointer.
[in] | flags | Options flags
[out] | phFrag | Pointer to receive buffer handle.
Return values:
Success | - Number of bytes of data received successfully
Error | - -1
Returns 0 on connection oriented sockets where the connection has been closed by the peer (or socket shutdown for read)

void recvncfree ( HANDLE hFrag )

Description
This function is used to free data buffers obtained using recvnc() or recvncfrom() calls. This is supported only IPv4/AF_INET family sockets.

Parameters:
[in] hFrag Handle to receive buffer to free.
Return values:
None

int recvncfrom | ( | SOCKET | s,
 |  | void ** | ppbuf,
 |  | int | flags,
 |  | PSA | pName,
 |  | int * | plen,
 |  | HANDLE * | phFrag
 | ) |  |

Description
This function attempts to receive data from a socket. It is normally called with unconnected, non-connection oriented sockets. A pointer to data is returned in ppbuf. A system handle used to free the buffer is returned in phFrag. Both of these pointers must be valid. The name (address) of the sender is written to pName. This function is only valid for IPv4/AF_INET family sockets.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[out] | ppbuf | Pointer to receive data buffer pointer.
[in] | flags | Options flags
[out] | pName | Pointer to place name (address) of sender
[out] | plen | Pointer to size of pName
[out] | phFrag | Pointer to receive buffer handle.
Return values:
Success | - Number of bytes of data received successfully
Error | - -1
Returns 0 on connection oriented sockets where the connection has been closed by the peer (or socket shutdown for read)

int send | ( | SOCKET | s,
 |  | void * | pbuf,
 |  | int | size,
 |  | int | flags
 | ) |  |

Description
This function attempts to send data on a socket. It is used on connected sockets only. The data to send is contained in the buffer specified by pbuf, with a length specified by size. The options in flags can be used to change the default behavior of the operation. The functions returns the length of the data transmitted on successful completion.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | pbuf | Data buffer holding data to transmit
[in] | size | Size of data.
[in] | flags | Options flags
Return values:
Success | - Number of bytes of data sent successfully
Error | - -1

int sendnc | ( | SOCKET | s,
 |  | void * | pbuf,
 |  | int | size,
 |  | HANDLE | hPkt,
 |  | int | flags
 | ) |  |

Description
This function attempts to send data on a socket without copy. The data to send is contained in the buffer specified by pbuf, with a length specified by size. Also, a valid handle to the packet buffer hPkt needs to be specified. This packet handle and the buffer pointer should have been obtained from getsendncbuf() call before calling this API. The options in flags can be used to change the default behavior of the operation. The functions returns the length of the data transmitted on successful completion.

This API is currently only supported for AF_RAWETH family sockets.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | pbuf | Data buffer holding data to transmit
[in] | size | Size of data.
[in] | hPkt | packet handle obtained previously from getsendncbuf() call.
[in] | flags | Options flags
Return values:
Success | - Number of bytes of data sent successfully
Error | - -1

void sendncfree ( HANDLE hFrag )

Description
This function is used to free data buffers obtained using getsendncbuff() calls. This is supported only for Raw ethernet socket / AF_RAWETH family sockets.

Parameters:
[in] hFrag Handle to receive buffer to free.
Return values:
None

int sendto | ( | SOCKET | s,
 |  | void * | pbuf,
 |  | int | size,
 |  | int | flags,
 |  | PSA | pName,
 |  | int | len
 | ) |  |

Description
This function attempts to send data on a socket to a specified destination. It is used on unconnected, non-connection oriented \ sockets only. The data to send is contained in the buffer specified by pbuf, with a length specified by size. The options in flags can be used to change the default behavior of the operation.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | pbuf | Data buffer holding data to transmit
[in] | size | Size of data.
[in] | flags | Options flags
[out] | pName | Pointer to name (address) of destination
[out] | len | size of pName
Return values:
Success | - Number of bytes of data sent successfully
Error | - -1

int setsockopt | ( | SOCKET | s,
 |  | int | level,
 |  | int | op,
 |  | void * | pbuf,
 |  | int | bufsize
 | ) |  |

Description
This function sets the option values associated with a socket.

Parameters:
[in] | s | Socket handle
[in] | level | Option level (SOL_SOCKET, IPPROTO_IP, IPPROTO_IPV6,IPPROTO_TCP)
[in] | op | Socket option to set
[in] | pbuf | Pointer to memory buffer
[in] | bufsize | Size of memory buffer pointed to by pbuf
Return values:
Success | - 0
Error | - -1

int shutdown | ( | SOCKET | s,
 |  | int | how
 | ) |  |

Description
This function causes all or part of a full-duplex connection on the socket associated with a socket to be shut down. If how is SHUT_RD (0), further receives will be disallowed. If how is SHUT_WR (1), further sends will be disallowed. If how is SHUT_RDWR (2), further sends and receives will be disallowed.

Parameters:
[in] | s | Handle to a socket obtained using "socket" function call.
[in] | how | Manner of shutdown.
Return values:
Success | - 0
Error | - -1

SOCKET socket | ( | int | domain,
 |  | int | type,
 |  | int | protocol
 | ) |  |

Description
This function creates a socket, an endpoint for communication and returns the socket in the form of a file descriptor.

Parameters:
[in] | domain | Socket domain/family. Valid values are AF_INET/AF_INET6.
[in] | type | Socket type (SOCK_DGRAM, SOCK_STREAM, SOCK_RAW).
[in] | protocol | Socket protocol (Normally IPPROTO_TCP or IPPROTO_UDP, but can be anything when type is set to SOCK_RAW)
Return values:
Success | - socket handle
Error | - INVALID_SOCKET


NDK Stack Documentation: src/stack/icmpv6/icmpv6.c File Reference

src/stack/icmpv6/icmpv6.c File Reference

The file has functions which handle the ICMPv6 Protocol. More...

Functions

void ICMPv6Init (void)

Detailed Description

The file has functions which handle the ICMPv6 Protocol.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void ICMPv6Init ( void )

Description
The function is used to initialize the ICMPv6 Protocol stack.

This is for *internal* NDK Stack Usage.

Return values:
Not Applicable.


NDK Stack Documentation: src/stack/icmpv6/icmpv6_ndisc.c File Reference

src/stack/icmpv6/icmpv6_ndisc.c File Reference

The file has functions which handle the Neighbour Discovery process as defined in the ICMPv6 Protocol. More...

Functions

int | ICMPv6SendNS (NETIF_DEVICE *ptr_device, IP6N DstAddress, IP6N SrcAddress, IP6N TargetAddress)
int | ICMPv6SendNA (NETIF_DEVICE *ptr_device, IP6N DstAddress, IP6N SrcAddress, IP6N TargetAddress, UINT8 Flags)
int | ICMPv6RecvNS (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)
int | ICMPv6RecvNA (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)
int | ICMPv6RecvRA (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)
int | ICMPv6RecvRedirect (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)
int | ICMPv6RecvRS (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)
int | ICMPv6SendRS (NETIF_DEVICE *ptr_device, IP6N SrcAddress)

Detailed Description

The file has functions which handle the Neighbour Discovery process as defined in the ICMPv6 Protocol.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

int ICMPv6RecvNA | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function handles the ICMPv6 Neighbour Advertisment Message

Parameters:
[in] | pPkt | Pointer to the entire ICMPv6 Packet.
[in] | ptr_ipv6hdr | Pointer to the IPv6 Header.
See also:
RFC-2461 Section 7.1.2
Return values:
0 | - Success
<0 | - Error

int ICMPv6RecvNS | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function handles the ICMPv6 Neighbour Solicitation Message

Parameters:
[in] | pPkt | Pointer to the entire ICMPv6 Packet.
[in] | ptr_ipv6hdr | Pointer to the IPv6 Header.
See also:
RFC-2461 Section 7.1.1, 7.2.3 & 7.2.4.
Return values:
0 | - Success
<0 | - Error

int ICMPv6RecvRA | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function handles the ICMPv6 Router Advertisment Message

Parameters:
[in] | pPkt | Pointer to the entire ICMPv6 Packet.
[in] | ptr_ipv6hdr | Pointer to the IPv6 Header.
See also:
RFC-2461 Section 6.1
Return values:
0 | - Success
<0 | - Error

int ICMPv6RecvRedirect | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function handles the ICMPv6 Redirect Message

Parameters:
[in] | pPkt | Pointer to the entire ICMPv6 Packet.
[in] | ptr_ipv6hdr | Pointer to the IPv6 Header.
See also:
RFC-2461 Section 8
Return values:
0 | - Success
<0 | - Error

int ICMPv6RecvRS | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function handles the ICMPv6 Router Solicitation Message

Parameters:
[in] | pPkt | Pointer to the entire ICMPv6 Packet.
[in] | ptr_ipv6hdr | Pointer to the IPv6 Header.
See also:
RFC-2461 Section 6.1
Return values:
0 | - Success
<0 | - Error

int ICMPv6SendNA | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | DstAddress,
 |  | IP6N | SrcAddress,
 |  | IP6N | TargetAddress,
 |  | UINT8 | Flags
 | ) |  |

Description
The function is used to send out a Neighbor Advertisment.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | The Network Interface object on which the packet is to be transmitted.
[in] | DstAddress | The destination address to which the NA packet is directed too.
[in] | SrcAddress | The Source address of the interface
[in] | TargetAddress | The Target address to which the NA message is being transmitted.
[in] | Flags | The value of the (R)eserved, (S)olicited and (O)verride flags.
Return values:
0 | - Success
<0 | - Error

int ICMPv6SendNS | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | DstAddress,
 |  | IP6N | SrcAddress,
 |  | IP6N | TargetAddress
 | ) |  |

Description
The function is used to send out a Neighbor solicitation

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | The Network Interface object on which the packet is to be transmitted.
[in] | DstAddress | The destination address to which the NS packet is directed too. As per RFC 2461; this can either be the Solicted Node Multicast Address or the the target address.
[in] | SrcAddress | The Source address of the interface; this can either be UNSPECIFIED i.e. :: if the NS is being sent for DAD or it will be the address of the source interface.
[in] | TargetAddress | The Target address to which the NS message is being transmitted.
Return values:
0 | - Success
<0 | - Error

int ICMPv6SendRS | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | SrcAddress
 | ) |  |

Description
The function is used to send out a Router solicitation. All RS messages are sent to the ALL_ROUTER Destination Address.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | The Network Interface object on which the packet is to be transmitted.
[in] | SrcAddress | The Source address of the interface; this could be set to the UNSPECIFIED address. If the Source address is UNSPECIFIED; the function does not append the SOURCE_LL Option to the RS packet.
Return values:
0 | - Success
<0 | - Error


NDK Stack Documentation: src/stack/icmpv6/icmpv6in.c File Reference

src/stack/icmpv6/icmpv6in.c File Reference

The file handles the reception of ICMPv6 Packets. More...

Functions

int ICMPv6RxPacket (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)

Detailed Description

The file handles the reception of ICMPv6 Packets.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

int ICMPv6RxPacket | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function handles the ICMPv6 Packets.

Parameters:
[in] | pPkt | Pointer to the entire ICMPv6 Packet.
[in] | ptr_ipv6hdr | Pointer to the IPv6 Header.
Return values:
Not Applicable.


NDK Stack Documentation: src/stack/icmpv6/icmpv6out.c File Reference

src/stack/icmpv6/icmpv6out.c File Reference

The file handles the transmission of ICMPv6 Packets. More...

Functions

int | IsICMPv6ErrorPkt (PBM_Pkt *pPkt)
int | ICMPv6SendDstUnreachable (UINT8 Code, PBM_Pkt *pOrgPkt)
int | ICMPv6SendTimeExceeded (UINT8 Code, PBM_Pkt *pOrgPkt)
int | ICMPv6SendParameterProblem (UINT8 Code, PBM_Pkt *pOrgPkt, UINT32 Pointer)

Detailed Description

The file handles the transmission of ICMPv6 Packets.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

int ICMPv6SendDstUnreachable | ( | UINT8 | Code,
 |  | PBM_Pkt * | pOrgPkt
 | ) |  |

Description
The function sends a destination unreachable message. The function accepts Code as a parameter and can be used to send different messages.

Parameters:
[in] | Code | Code to be added to the ICMPv6 Destination Unreachable message Valid Values range from 0 - 4 as specified in RFC 2463.
[in] | pOrgPkt | The offending packet which causes the packet to be sent out.
Return values:
0 | - Success
<0 | - Error

int ICMPv6SendParameterProblem | ( | UINT8 | Code,
 |  | PBM_Pkt * | pOrgPkt,
 |  | UINT32 | Pointer
 | ) |  |

Description
The function sends the Parameter Problem message. The function accepts Code as a parameter and can be used to send different messages.

Parameters:
[in] | Code | Code to be added to the ICMPv6 Time Exceeded message Valid Values range from 0 - 2 as specified in RFC 2463.
[in] | pOrgPkt | The offending packet which causes the packet to be sent out.
[in] | Pointer | Identifies the Code Offset within the packet where the error occurred.
Return values:
0 | - Success
<0 | - Error

int ICMPv6SendTimeExceeded | ( | UINT8 | Code,
 |  | PBM_Pkt * | pOrgPkt
 | ) |  |

Description
The function sends a Time Exceeded message. The function accepts Code as a parameter and can be used to send different messages.

Parameters:
[in] | Code | Code to be added to the ICMPv6 Time Exceeded message Valid Values range from 0 - 1 as specified in RFC 2463.
[in] | pOrgPkt | The offending packet which causes the packet to be sent out.
Return values:
0 | - Success
<0 | - Error

int IsICMPv6ErrorPkt ( PBM_Pkt * pPkt )

Description
This function parses through all the IPv6 extension headers to check if the packet is an ICMPv6 error message.

Parameters:
[in] pPkt The packet that needs to be checked for ICMPv6 error.
Return values:
1 | - Packet is an ICMPv6 error message.
0 | - Packet is not an ICMPv6 error packet.


NDK Stack Documentation: src/stack/igmp/igmp.c File Reference

src/stack/igmp/igmp.c File Reference

IGMP Stack Implementation. More...

Functions

void | IGMPLeaveHostGroup (IPN IpAddr, uint IfIdx)
int | IGMPJoin (HANDLE hSock, struct ip_mreq *ptr_ipmreq)
int | IGMPLeave (HANDLE hSock, struct ip_mreq *ptr_ipmreq)

Detailed Description

IGMP Stack Implementation.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

int IGMPJoin | ( | HANDLE | hSock,
 |  | struct ip_mreq * | ptr_ipmreq
 | ) |  |

Description
The function is called from the setsockopt to join a multicast group. This function was added to make the IGMP Join behavior similar to the standard 'socket' interface via the IP_ADD_MEMBERSHIP socket option.

Parameters:
[in] | hSock | Handle to the socket on which the multicast group is being joined.
[in] | ptr_ipmreq | Multicast Request structure populated by the application which contains the Multicast group address and the address of the interface on which the group is being joined.
Return values:
0 | - Success
Non | Zero - Error

int IGMPLeave | ( | HANDLE | hSock,
 |  | struct ip_mreq * | ptr_ipmreq
 | ) |  |

Description
The function is called from the setsockopt to leave a multicast group. This function was added to make the IGMP Leave behavior similar to the standard 'socket' interface via the IP_DROP_MEMBERSHIP socket option.

Parameters:
[in] | hSock | Handle to the socket on which the multicast group is leaving.
[in] | ptr_ipmreq | Multicast Request structure populated by the application which contains the Multicast group address and the address of the interface on which the group will be left.
Return values:
0 | - Success
Non | Zero - Error

void IGMPLeaveHostGroup | ( | IPN | IpAddr,
 |  | uint | IfIdx
 | ) |  |

Description
The function is called to LEAVE a multicast group on the specific interface. The function leaves the multicast group on the interface list and kicks the IGMP membership state machine to send out the LEAVE reports.

This is the OLD API which was used to LEAVE multicast groups but has now been obsoleted. Users are advised to use the well defined setsockopt with the IP_DROP_MEMBERSHIP to acheive the needful.

This function is now called only from *kernel* context

Parameters:
[in] | IpAddr | Multicast group IP address which is being joined.
[in] | IfIdx | Interface Index on which the group is being joined.
Return values:
Not Applicable.


NDK Stack Documentation: src/stack/ipv6/ipv6.c File Reference

src/stack/ipv6/ipv6.c File Reference

The file has functions which handle the IPv6 Protocol. More...

Functions

UINT16 | IPv6Layer4ComputeChecksum (UINT8 *ptr_l4Hdr, PSEUDOV6 *ptr_pseudoHdr)
void | IPv6IPAddressToString (IP6N address, char *strIPAddress)
void | IPv6DisplayIPAddress (IP6N address)
int | isValidHexDigit (int ch)
int | GetHexValue (int ch)
int | IPv6StringToIPAddress (char *StringIP, IP6N *address)
UINT16 | IPv6CompareAddress (IP6N addr1, IP6N addr2)
UINT16 | IPv6IsMulticast (IP6N address)
UINT16 | IPv6IsLinkLocal (IP6N address)
void | IPv6GetSubnetMaskFromBits (IP6N *SubnetMask, UINT16 bits)
int | IPv6AddAddress (UINT16 dev_index, IP6N Address, UINT16 NetBits, UINT32 ValidLifetime, UINT32 PrefLifetime, UINT8 IsAnycast)
int | IPv6DelAddress (UINT16 dev_index, IP6N Address)
int | IPv6InterfaceInit (UINT16 dev_index, void(*DADStatus)(IP6N Address, UINT16 dev_index, UINT8 Status))
int | IPv6InterfaceDeInit (UINT16 dev_index)
void | IPv6Init (void)

Detailed Description

The file has functions which handle the IPv6 Protocol.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

int GetHexValue ( int ch )

Description
Utility function that converts a given ASCII character to its hexadecimal value.

Parameters:
[in] ch The character that needs to be converted to hex.
Return values:
Hex | equivalent - Success
-1 | - Error, the character is not a valid hexadecimal digit.

int IPv6AddAddress | ( | UINT16 | dev_index,
 |  | IP6N | Address,
 |  | UINT16 | NetBits,
 |  | UINT32 | ValidLifetime,
 |  | UINT32 | PrefLifetime,
 |  | UINT8 | IsAnycast
 | ) |  |

Description
This function is used to add an IPv6 address to an interface. This function should not be used to add Link Local Addresses to the interface. Link Local Addresses are automatically added to the interface when the IPv6 stack is initialized on it.

See also:
IPv6AddAddress
The function is exported to system developers and should only be called from outside kernel mode.

Parameters:
[in] | dev_index | The device index on which the IPv6 address needs to be added.
[in] | Address | The IPv6 Address which needs to be added.
[in] | NetBits | The number of bits which make the Subnet-Mask.
[in] | ValidLifetime | The Valid Lifetime of the address. Set to INFINITE_LT if the address is permanent
[in] | PrefLifetime | The Preferred Lifetime of the address. Set to INFINITE_LT if the address is permanent.
[in] | IsAnycast | Flag which indicates if the address to be added is ANYCAST or UNICAST. Set to 1 for ANYCAST.
Return values:
0 | - Success
<0 | - Error

UINT16 IPv6CompareAddress | ( | IP6N | addr1,
 |  | IP6N | addr2
 | ) |  |

Description
Utility Function used to compare the 2 IPv6 Addresses.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | addr1 | The first IPv6 Address which is to be compared.
[in] | addr2 | The second IPv6 Address which is to be compared.
Return values:
1 | - The IP Addresses match
0 | - The IP Addresses do not match

int IPv6DelAddress | ( | UINT16 | dev_index,
 |  | IP6N | Address
 | ) |  |

Description
This function is used to delete an IPv6 address from an interface This function should not be used to delete Link Local Addresses from the interface. Link Local Addresses are automatically deleted from the interface when the IPv6 stack is de-initialized on it.

See also:
IPv6InterfaceDeInit
The function is exported to system developers and should only be called from outside kernel mode.

Parameters:
[in] | dev_index | The device index on which the IPv6 address needs to be deleted.
[in] | Address | The IPv6 Address which needs to be deleted.
Return values:
0 | - Success
<0 | - Error

void IPv6DisplayIPAddress ( IP6N address )

Description
Utility Function which prints the IPv6 address. The IP address passed has to be specified in network order (IP6N).

Parameters:
[in] address IPv6 Address to be displayed.
Return values:
Not Applicable.

void IPv6GetSubnetMaskFromBits | ( | IP6N * | SubnetMask,
 |  | UINT16 | bits
 | ) |  |

Description
Utility Function which gets the subnet mask given the number of bits.

For example: Subnet Mask = 0xFFFF:: if the bits is 16

This is for *internal* NDK Stack Usage.

Parameters:
[out] | SubnetMask | Pointer to the computed subnet mask in network order.
[in] | bits | Number of bits in the subnet mask
Return values:
Not Applicable.

void IPv6Init ( void )

Description
This function is used to initialize the IPv6 Module.

This is for *internal* NDK Stack Usage.

Return values:
Not Applicable.

int IPv6InterfaceDeInit ( UINT16 dev_index )

Description
This function is used to deinitialize the IPv6 stack on the the specific device name. The function is available to System Developers and should only be called from within kernel mode.

Parameters:
[in] dev_index The device index on which the IPv6 stack is to be deinitialized.
Return values:
0 | - Success
<0 | - Error

int IPv6InterfaceInit | ( | UINT16 | dev_index,
 |  | void(*)(IP6N Address, UINT16 dev_index, UINT8 Status) | DADStatus
 | ) |  |

Description
This function is used to initialize the IPv6 stack on the the specific device name. This is available to System Developers and should be invoked for the IPv6 stack to be operational on the specified interface. This can be called only from kernel mode thus System Developers should ensure that is called within the llEnter and llExit sections.

Parameters:
[in] | dev_index | The device index on which the IPv6 stack is to be initialized.
[in] | DADStatus | This is the call back function which is invoked by the IPv6 state machine once the DAD process has been completed on an address. The Status argument indicates the result of the DAD operation. 1 indicates that the address was permanent and 0 indicates that the address is a duplicate. This is an optional parameter and can be passed as NULL.
Return values:
0 | - Success
<0 | - Error

void IPv6IPAddressToString | ( | IP6N | address,
 |  | char * | strIPAddress
 | ) |  |

Description
Utility Function which converts the IPv6 address to string format.

Parameters:
[in] | address | The IPv6 Address in IP6N format.
[out] | strIPAddress | The IPv6 Address in String Format.
Return values:
Not Applicable.

UINT16 IPv6IsLinkLocal ( IP6N address )

Description
Utility Function which determines if the IPv6 Address specified is a Link Local address or not?

This is for *internal* NDK Stack Usage.

Parameters:
[in] address IPv6 Address which needs to be verfied.
Return values:
1 | - The address passed is Link Local
0 | - The address passed is NOT Link Local

UINT16 IPv6IsMulticast ( IP6N address )

Description
Utility Function which determines if the IPv6 Address specified is a Multicast address or not?

This is for *internal* NDK Stack Usage.

Parameters:
[in] address IPv6 Address which needs to be verfied.
Return values:
1 | - The address passed is MULTICAST
0 | - The address passed is NOT Multicast

UINT16 IPv6Layer4ComputeChecksum | ( | UINT8 * | ptr_l4Hdr,
 |  | PSEUDOV6 * | ptr_pseudoHdr
 | ) |  |

Description
The function does the Layer4 Checksum computation.

Parameters:
[in] | ptr_l4Hdr | Pointer to the Layer4 Header. This could be TCP, UDP or ICMPv6.
[in] | ptr_pseudoHdr | Pointer to the Pseudo Header.
Return values:
Returns the computed checksum.
Precondition:
Ensure that the Checksum field in the layer4 header is set to 0 before calling this function.

int IPv6StringToIPAddress | ( | char * | StringIP,
 |  | IP6N * | address
 | ) |  |

Description
Utility Function which converts an IPv6 Address from CHAR Format to IP6N

Parameters:
[in] | StringIP | The IPv6 Address in String Format
[out] | address | The IPv6 Address in IP6N format.
Return values:
0 | - Success
-1 | - Error

int isValidHexDigit ( int ch )

Description
Utility Function that validates whether a given ASCII character is a valid hexadecimal digit.

Parameters:
[in] ch The character that needs to be validated
Return values:
1 | - Success, the character is a hexadecimal digit
0 | - Error, the character is not a valid hexadecimal digit.


NDK Stack Documentation: src/stack/ipv6/ipv6.h File Reference

src/stack/ipv6/ipv6.h File Reference

The file handle carries all definitions for functions and data structures common to core IPv6 internal processing. More...

Functions

void | IPv6FragMsg (uint Msg)
int | IPv6TxFragPacket (PBM_Pkt *pPkt, NETIF_DEVICE *ptr_net_device, HANDLE ptr_lli6)

Detailed Description

The file handle carries all definitions for functions and data structures common to core IPv6 internal processing.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void IPv6FragMsg ( uint Msg )

Description
IPv6 Fragmentation & Reassembly module's event handling function.

This is for *internal* NDK Stack Usage.

Parameters:
[in] Msg The message event which needs to be handled.
Return values:
None.

int IPv6TxFragPacket | ( | PBM_Pkt * | pPkt,
 |  | NETIF_DEVICE * | ptr_net_device,
 |  | HANDLE | ptr_lli6
 | ) |  |

Description
This function is called by IPv6TxPacket when it detects that the packet cannot be transmitted as a whole using a specified tx device. This function handles the fragmentation and transmit of such a packet.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | pPkt | Pointer to the IPv6 packet which needs to be transmitted
[in] | ptr_net_device | Pointer to the device on which the fragment packets need to be transmitted
[in] | ptr_lli6 | Handle to the LLI6 Entry
Return values:
Success | - 0
Error | - <0


NDK Stack Documentation: src/stack/ipv6/ipv6_exthdrs.c File Reference

src/stack/ipv6/ipv6_exthdrs.c File Reference

The file handles the IPv6 extension header processing. More...

Functions

void IPv6ParseExtnHeaders (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)

Detailed Description

The file handles the IPv6 extension header processing.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void IPv6ParseExtnHeaders | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function handles all IPV6 extension headers.

Parameters:
[in] | pPkt | Pointer to the entire IPv6 Packet.
[in] | ptr_ipv6hdr | Pointer to the IPv6 Header.
Return values:
None


NDK Stack Documentation: src/stack/ipv6/ipv6_frag.c File Reference

src/stack/ipv6/ipv6_frag.c File Reference

The file handles the IPv6 Fragment Reassembly processing. More...

Data Structures

struct | FRAG6Q
The structure describes the Fragment Reassembly Queue. More...

Functions

void | IPv6FragMsg (uint Msg)
int | IPv6ParseFragHdr (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)
int | IPv6TxFragPacket (PBM_Pkt *pPkt, NETIF_DEVICE *ptr_net_device, HANDLE ptr_lli6)

Detailed Description

The file handles the IPv6 Fragment Reassembly processing.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void IPv6FragMsg ( uint Msg )

Description
IPv6 Fragmentation & Reassembly module's event handling function.

This is for *internal* NDK Stack Usage.

Parameters:
[in] Msg The message event which needs to be handled.
Return values:
None.

int IPv6ParseFragHdr | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function handles all packets with fragmentation header.

Parameters:
[in] | pPkt | Pointer to the entire IPv6 Packet.
[in] | ptr_ipv6hdr | Pointer to the IPv6 Header.
Return values:
-1 | - Error in processing the packet. Packet has been cleaned up.
1 | - Packet has been successfully processed by fragmentation module. Its been absorbed by this module for reassembly. Ignore this packet. This packet is now a responsibility of the fragmentation layer for further processing.

int IPv6TxFragPacket | ( | PBM_Pkt * | pPkt,
 |  | NETIF_DEVICE * | ptr_net_device,
 |  | HANDLE | ptr_lli6
 | ) |  |

Description
This function is called by IPv6TxPacket when it detects that the packet cannot be transmitted as a whole using a specified tx device. This function handles the fragmentation and transmit of such a packet.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | pPkt | Pointer to the IPv6 packet which needs to be transmitted
[in] | ptr_net_device | Pointer to the device on which the fragment packets need to be transmitted
[in] | ptr_lli6 | Handle to the LLI6 Entry
Return values:
Success | - 0
Error | - <0


NDK Stack Documentation: src/stack/ipv6/ipv6in.c File Reference

src/stack/ipv6/ipv6in.c File Reference

The file handles the reception of IPv6 Packets. More...

Functions

void IPv6RxPacket (PBM_Pkt *pPkt)

Detailed Description

The file handles the reception of IPv6 Packets.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void IPv6RxPacket ( PBM_Pkt * pPkt )

Description
This function is used to process an IPv6 packet received on the network.

This is for *internal* NDK Stack Usage.

Parameters:
[in] pPkt Pointer to the IPv6 packet.
Return values:
Not Applicable.


NDK Stack Documentation: src/stack/ipv6/ipv6out.c File Reference

src/stack/ipv6/ipv6out.c File Reference

The file handles the transmission of IPv6 Packets. It also handles fragmentation of the packets, if the packets being transmitted are larger than the configured MTU on the transmit device. More...

Functions

HANDLE | IPv6GetRoute (IP6N DstIP)
int | IPv6TxPacket (PBM_Pkt *pPkt, UINT32 Flags)

Detailed Description

The file handles the transmission of IPv6 Packets. It also handles fragmentation of the packets, if the packets being transmitted are larger than the configured MTU on the transmit device.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

HANDLE IPv6GetRoute ( IP6N DstIP )

Description
The function is used to get an IPv6 route matching the destination IP Address. The function increments the reference counter for the ROUTE6 object.

This is for *internal* NDK Stack Usage.

Parameters:
[in] DstIP IPv6 Destination IP address we are trying to find a route for.
Return values:
Success | - Handle of the Route6 object to be used.
Error | - 0

int IPv6TxPacket | ( | PBM_Pkt * | pPkt,
 |  | UINT32 | Flags
 | ) |  |

Description
The function is used to transmit an IPv6 packet.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | pPkt | Pointer to the IPv6 packet which needs to be transmitted
[in] | Flags | Flags which need to be worked out. (Placeholder)
Return values:
Success | - 0
Error | - <0


NDK Stack Documentation: src/stack/lli6/lli6.c File Reference

src/stack/lli6/lli6.c File Reference

The file implements the LLI6 Module which is responsible for keeping track of the Neighbor Cache entries and the Neighbor Unreachability Algorithm as specified in RFC 2461. More...

Functions

void | LLI6Update (HANDLE hLLI6, UINT8 *mac_address, UINT32 RxPktType, UINT32 Flags)
void | LLI6Msg (uint Msg)
void | LLI6IncRefCount (HANDLE hLLI6)
UINT8 | LLI6IsRouter (HANDLE hLLI6)
UINT8 | LLI6IsDead (HANDLE hLLI6)
UINT8 | LLI6IsValid (HANDLE hLLI6)
void | LLI6SetIncomplete (HANDLE hLLI6)
NETIF_DEVICE * | LLI6GetNetDevice (HANDLE hLLI6)
HANDLE | LLI6New (RT6_ENTRY *ptr_rt6, UINT8 *pMacAddress, UINT8 IsRouter)
void | LLI6Free (HANDLE hLLI6)
void | LLI6TxIPPacket (PBM_Pkt *pPkt, HANDLE hLLI6, NETIF_DEVICE *ptr_device, IP6N Address)

Detailed Description

The file implements the LLI6 Module which is responsible for keeping track of the Neighbor Cache entries and the Neighbor Unreachability Algorithm as specified in RFC 2461.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void LLI6Free ( HANDLE hLLI6 )

Description
This function is used to delete the LLI6 Entry. LLI6 Entries can only be deleted by the ROUTE6 Module.

This is for *internal* NDK Stack Usage.

Parameters:
[in] hLLI6 Handle to the LLI6 Object to be deleted.
Return values:
Not Applicable.

NETIF_DEVICE* LLI6GetNetDevice ( HANDLE hLLI6 )

Description
The function gets the network device associated with the LLI6 Entry.

This is for *internal* NDK Stack Usage.

Parameters:
[in] hLLI6 Handle to the LLI6 Entry whose network device we need to return.
Return values:
Success - Handle to the Network Device Error - 0

void LLI6IncRefCount ( HANDLE hLLI6 )

Description
The function Increments the reference counter for the LLI6 Entry. This can be invoked by the ROUTE6 Module if it detects multiple hosts which have different IP addresses but are actual one and the same.

This is for *internal* NDK Stack Usage.

Parameters:
[in] hLLI6 Handle of the LLI6 Entry whose reference counter we need to increment.
Return values:
Not Applicable.

UINT8 LLI6IsDead ( HANDLE hLLI6 )

Description
The function checks if the LLI6 Entry is DEAD or not?

This is for *internal* NDK Stack Usage.

Parameters:
[in] hLLI6 Handle to the LLI6 Entry which we need to check.
Return values:
1 | - LLI6 Entry is DEAD & can be removed.
0 | - LLI6 Entry is not DEAD

UINT8 LLI6IsRouter ( HANDLE hLLI6 )

Description
The function verifies if the LLI6 Entry belongs to a ROUTER or HOST.

This is for *internal* NDK Stack Usage.

Parameters:
[in] hLLI6 Handle to the LLI6 Entry which we need to verify.
Return values:
1 | - LLI6 Entry belongs to a ROUTER
0 | - LLI6 Entry belongs to a HOST

UINT8 LLI6IsValid ( HANDLE hLLI6 )

Description
The function checks if the LLI6 Entry is VALID or not? An LLI6 Entry can be used only if it is !INCOMPLETE and its !DEAD

This is for *internal* NDK Stack Usage.

Parameters:
[in] hLLI6 Handle to the LLI6 Entry which we need to check.
Return values:
1 | - LLI6 Entry is VALID and can be used.
0 | - LLI6 Entry is not VALID and should not be used.

void LLI6Msg ( uint Msg )

Description
Sevices intialization and resource messages for the LLI6 Module.

This is for *internal* NDK Stack Usage.

Parameters:
[in] Msg The message event which needs to be handled.
Return values:
Not Applicable.

HANDLE LLI6New | ( | RT6_ENTRY * | ptr_rt6,
 |  | UINT8 * | pMacAddress,
 |  | UINT8 | IsRouter
 | ) |  |

Description
This function is used to create a new LLI6 Entry. LLI6 Entries can only be created by the ROUTE6 Module.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_rt6 | Pointer to the Route6 Entry on which the LLI6 Object is created.
[in] | pMacAddress | Pointer to the layer2 MAC Address.
[in] | IsRouter | Flag which indicates if the LLI6 Entry is ROUTER or HOST. This is set to 1 for ROUTER and 0 for HOST.
Return values:
Handle | to the new LLI Entry - Success
0 | - Error

void LLI6SetIncomplete ( HANDLE hLLI6 )

Description
The function moves an LLI6 Entry to INCOMPLETE STATE. This API should be used very carefully as it might break the Neighbor Unreachability Detection Logic. This is currently being used from the ROUTE6 Module to handle the special case for the Default Router Selection.

This is for *internal* NDK Stack Usage.

Parameters:
[in] hLLI6 Handle to the LLI6 Entry whose status needs to be modified.
Return values:
Not Applicable.

void LLI6TxIPPacket | ( | PBM_Pkt * | pPkt,
 |  | HANDLE | hLLI6,
 |  | NETIF_DEVICE * | ptr_device,
 |  | IP6N | Address
 | ) |  |

Description
This function is called from the IPv6 stack to resolve the IPv6 address to a corresponding MAC address and push the packet to the drivers.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | pPkt | Pointer to the packet which needs to be transmitted.
[in] | hLLI6 | Handle to the LLI6 Entry.
[in] | ptr_device | Pointer to the Network Interface Object on which the packet needs to be sent out.
[in] | Address | The Destination Address of the packet.
Return values:
Not Applicable.

void LLI6Update | ( | HANDLE | hLLI6,
 |  | UINT8 * | mac_address,
 |  | UINT32 | RxPktType,
 |  | UINT32 | Flags
 | ) |  |

Description
The function is used to update the LLI6 Entry. This is called whenever one of the Neighbour Discovery packets are received:- a) NS b) NA c) RS d) RA e) Redirect. The function executes the Neighbor Unreachability Detection and Is Router State Machine.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | hLLI6 | Handle to the LLI6 Entry being updated.
[in] | mac_address | MAC Address which needs to be updated. This can be NULL in which case only the IsRouterStateMachine is executed; the Neighbor Unreachability State Machine is bypassed.
[in] | RxPktType | The packet type received which has triggered a call to this function.
[in] | Flags | The flags field in the NA Header received. 0 for all other packets.
Return values:
Not Applicable.


NDK Stack Documentation: src/stack/mld/mld.c File Reference

src/stack/mld/mld.c File Reference

The file handles the Multicast Listner Discovery Protocol for IPv6. More...

Functions

int | MLDTestGroup (NETIF_DEVICE *ptr_device, IP6N multicast_address)
int | MLDJoinGroup (NETIF_DEVICE *ptr_device, IP6N multicast_address)
int | MLDLeaveGroup (NETIF_DEVICE *ptr_device, IP6N multicast_address)

Detailed Description

The file handles the Multicast Listner Discovery Protocol for IPv6.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

int MLDJoinGroup | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | multicast_address
 | ) |  |

Description
This function is used to join a multicast group over a specific interface.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | The pointer to the NIMU Network Interface object over which the multicast address is being joined.
[in] | multicast_address | IPv6 Multicast address being joined.
Return values:
0 | - Success
<0 | - Error

int MLDLeaveGroup | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | multicast_address
 | ) |  |

Description
This function is used to leave a multicast group over a specific interface.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | The pointer to the NIMU Network Interface object over which the multicast address is being left.
[in] | multicast_address | IPv6 Multicast address being left.
Return values:
0 | - Success
<0 | - Error

int MLDTestGroup | ( | NETIF_DEVICE * | ptr_device,
 |  | IP6N | multicast_address
 | ) |  |

Description
This function is called from the IPv6 Stack receive handler to verify if the address specified here has been joined or not?

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | Pointer to the Network Interface object on which the IPv6 packet was rxed.
[in] | multicast_address | This is the IPAddress from the Destination field of the IPv6 Packet.
Return values:
1 | - Multicast Group has been joined
0 | - The group has not been joined.


NDK Stack Documentation: src/stack/nimu/nimu.c File Reference

src/stack/nimu/nimu.c File Reference

Implements the network interface management code. This is required when the NDK Core stack has been built to be able to handle multiple drivers. The file has the code which resides in the data path. More...

Functions

void | NIMUSendPacket (HANDLE hIF, PBM_Pkt *pPkt)
int | NIMUAddHeader (NETIF_DEVICE *ptr_device, HANDLE hPkt, UINT8 *dst_mac, UINT8 *src_mac, UINT16 protocol)
void | NIMUPacketService (void)
void | NIMUPacketServiceCheck (int fEvents)
int | NIMUReceivePacket (PBM_Handle hPkt)
PBM_Pkt * | NIMUCreatePacket (uint packet_size)
int | NIMUAddEthernetHeader (NETIF_DEVICE *ptr_net_device, PBM_Handle hPkt, UINT8 *dst_mac, UINT8 *src_mac, UINT16 ether_type)
NETIF_DEVICE * | NIMUFindByIndex (uint index)
NETIF_DEVICE * | NIMUFindByName (char *name)
int | NIMURegister (NETIF_DEVICE *ptr_netif_device)
int | NIMUUnregister (NETIF_DEVICE *ptr_netif_device)
int | NIMUIoctl (uint cmd, NIMU_IF_REQ *ptr_nimu_ifreq, void *pBuf, uint size)
void | NIMUGetRsvdSizeInfo (int *header_size, int *trailer_size)
void | NIMUSetRsvdSizeInfo (int header_size, int trailer_size)
int | NIMUInit (STKEVENT_Handle hEvent)
void | NIMUShutdown (void)

Detailed Description

Implements the network interface management code. This is required when the NDK Core stack has been built to be able to handle multiple drivers. The file has the code which resides in the data path.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

int NIMUAddEthernetHeader | ( | NETIF_DEVICE * | ptr_net_device,
 |  | PBM_Handle | hPkt,
 |  | UINT8 * | dst_mac,
 |  | UINT8 * | src_mac,
 |  | UINT16 | ether_type
 | ) |  |

Description
The function is a UTILITY function which is provided for use to driver authors if the driver is a simple Ethernet driver. Driver Authors should initialize the 'add_header' field of the NIMU Network Interface object to this function.

This will ensure that all packets passed to the driver are pre-pended with the correct layer2 ethernet header before they are transmitted. Failure to do will cause no Layer2 headers to be added.

Parameters:
[in] | ptr_net_device | The NIMU Network interface object on which the packet will be transmitted and which is used to tag the correct L2 header.
[in] | hPkt | Handle to the packet which will be sent out and on which the L2 header is added.
[in] | dst_mac | The Dst MAC Address to be added on the packet
[in] | src_mac | The Src MAC Address to be added on the packet
[in] | ether_type | The 'Protocol' tag which needs to be appended.
Return values:
0 | - Success
<0 | - Error

int NIMUAddHeader | ( | NETIF_DEVICE * | ptr_device,
 |  | HANDLE | hPkt,
 |  | UINT8 * | dst_mac,
 |  | UINT8 * | src_mac,
 |  | UINT16 | protocol
 | ) |  |

Description
The function is used to add an appropriate layer2 header as specified by the NIMU object. This function is called when the packet is passed down from layer3 to layer2 and is used to prep the packet by adding the correct layer2 header.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | ptr_device | The NIMU Network interface object on which the packet will be transmitted and which is used to tag the correct L2 header.
[in] | hPkt | Handle to the packet which will be sent out and on which the L2 header is added.
[in] | dst_mac | The Dst MAC Address to be added on the packet
[in] | src_mac | The Src MAC Address to be added on the packet
[in] | protocol | The 'Protocol' tag which needs to be appended.
Return values:
0 | - Success
<0 | - Error

PBM_Pkt* NIMUCreatePacket ( uint packet_size )

Description
The function is a generic utility function which creates a packet that is used for transmission on any network interface object which has been registered with the NIMU. The packet allocated has 'header' and 'trailer' padding added.

This is for *internal* NDK Stack Usage.

Parameters:
[in] packet_size Size of the packet which needs to be allocated.
Return values:
Handle | to the packet - Success
NULL | - Error

NETIF_DEVICE* NIMUFindByIndex ( uint index )

Description
The function searches the NIMU database and finds an entry matching the device 'index'

This is for *internal* NDK Stack Usage.

Parameters:
[in] index The device index we are trying to locate.
Return values:
NIMU | Network Interface Object - Matching entry found.
NULL | - No Match

NETIF_DEVICE* NIMUFindByName ( char * name )

Description
The function searches the NIMU database and finds an entry matching the device 'name'

This is for *internal* NDK Stack Usage.

Parameters:
[in] name The device name we are trying to locate.
Return values:
NIMU | Network Interface Object - Matching entry found.
NULL | - No Match

void NIMUGetRsvdSizeInfo | ( | int * | header_size,
 |  | int * | trailer_size
 | ) |  |

Description
The function is to used to retrieve the header and trailer reserved size information. The Network Interface Management Unit keeps track of all devices present in the system and is also responsible for ensuring that there is suffient headroom and tailroom for various driver layers to be able to add headers or trailers as the need be. This ensures that there are no copies being done because of insufficient headroom.

The function is available for usage; but it should only be called from kernel mode (llEnter()/llExit())

Parameters:
[out] | header_size | The current header size which is reserved.
[out] | trailer_size | The current trailer size which is reserved.
Return values:
Not Applicable.

int NIMUInit ( STKEVENT_Handle hEvent )

Description
The function initializes the NDK core stack Network Interface Management Unit

This is for *internal* NDK Stack Usage.

Parameters:
[in] hEvent The stack event handle which is used by the NDK Network Scheduler to indicate data is present on the drivers. This handle is required by the drivers for its operation.
Return values:
0 | - Success
<0 | - Error

int NIMUIoctl | ( | uint | cmd,
 |  | NIMU_IF_REQ * | ptr_nimu_ifreq,
 |  | void * | pBuf,
 |  | uint | size
 | ) |  |

Description
The function is the standard IOCTL interface to the NIMU module and is used to get/set parameters to the NIMU. The API is available to use for applications outside the core NDK stack since it does the necessary llEnter/llExit.

Parameters:
[in] | cmd | One of the special commands mentioned above.
[in] | ptr_nimu_ifreq | The NIMU Interface request structure which identifies the NIMU object to which the 'cmd' is directed upon.
[in] | pBuf | The pointer to the buffer where the result of the command execution will be stored.
[in] | size | The size of the result buffer i.e. pBuf.
Return values:
0 | - Success
<0 | - Error

void NIMUPacketService ( void )

Description
The function is called by the NDK Net Scheduler to service all NIMU Network Interface objects registered in the system. This is called when the NDK scheduler detects that a packet has been received by the lower HAL drivers and needs to be serviced.

This is for *internal* NDK Stack Usage.

Return values:
Not Applicable.

void NIMUPacketServiceCheck ( int fEvents )

Description
The function is called by the NDK Net Scheduler to allow HAL drivers to be able to perform 'periodic' activities; such as Ethernet Link management. There also exists a mode in which the HAL drivers can execute in 'polled' mode. In this case this the HAL drivers do not use 'interrupts' and are polled by the NDK Net Scheduler to check for transmit/receive activity.

This is for *internal* NDK Stack Usage.

Parameters:
[in] fEvents This is set to 1 if the function is invoked by the NDK Net Scheduler because of a timer tick. Set to 0 otherwise. This flag is available to the HAL drivers to determine the source of the function invocation.
Return values:
Not Applicable.

int NIMUReceivePacket ( PBM_Handle hPkt )

Description
This routine is the API interface routine which needs to be invoked by the drivers to pass the packet up the NDK core stack The function takes the raw packet received from the MAC device, and validates the link level related data. Packets are passed up the stack on the basis of the 'protocol' field.

Parameters:
[in] hPkt Handle to the packet which is to be passed up the NDK stack.
Return values:
-1 | - Error
0 | - Success

int NIMURegister ( NETIF_DEVICE * ptr_netif_device )

Description
This API is used by driver authors to register a network device with the NDK Network Interface Management Unit. The function verifies the arguments, checks for duplicates and adds the device to NIMU (Network Interface Management Unit)

Parameters:
[in] ptr_netif_device The NIMU Network Interface Object to be registered.
Return values:
0 | - Success
<0 | - Error

void NIMUSendPacket | ( | HANDLE | hIF,
 |  | PBM_Pkt * | pPkt
 | ) |  |

Description
The function is the interface routine which is called to send a packet via the registered the NIMU Network Interface Object.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | hIF | Handle of the NIMU Network interface object on which the packet will be transmitted.
[in] | pPkt | Handle to the packet which needs to be sent
Return values:
Not Applicable.

void NIMUSetRsvdSizeInfo | ( | int | header_size,
 |  | int | trailer_size
 | ) |  |

Description
The function is to used to set the header and trailer reserved size information. This is typically used by driver authors if the driver needs a L2 header or trailer and the current size are not sufficient.

There is no validation done on the arguments.

The function is available for usage; but it should only be called from kernel mode (llEnter()/llExit())

Parameters:
[in] | header_size | The new header size which is to be reserved
[in] | trailer_size | The new trailer size which is to be reserved
Return values:
Not Applicable.

void NIMUShutdown ( void )

Description
The function closes the NDK core stack Network Interface Management Unit

This is for *internal* NDK Stack Usage.

Return values:
Not applicable.

int NIMUUnregister ( NETIF_DEVICE * ptr_netif_device )

Description
This API is used by driver authors to unregister and stop the network device from the NIMU. The device should have been registered with the NIMU.

Parameters:
[in] ptr_netif_device The NIMU Network Interface Object to be unregistered.
Return values:
0 | - Success
<0 | - Error


NDK Stack Documentation: src/stack/raw6/raw6.c File Reference

src/stack/raw6/raw6.c File Reference

The file has functions which handle the RAW6 sockets. More...

Functions

int | Raw6Output (HANDLE hSock, UINT8 *buf, INT32 size, INT32 *pRetSize)
void | Raw6Input (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr, UINT8 Protocol)

Detailed Description

The file has functions which handle the RAW6 sockets.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void Raw6Input | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr,
 |  | UINT8 | Protocol
 | ) |  |

Description
The function is called when a RAW packet is received over the IPv6 Network.

Parameters:
[in] | pPkt | The packet received.
[in] | ptr_ipv6hdr | The IPv6 Header of the received packet.
[in] | Protocol | The Layer4 Protocol received. This is not necessarily the same as the Next Header in the IPv6 header.
Return values:
Not Applicable.

int Raw6Output | ( | HANDLE | hSock,
 |  | UINT8 * | buf,
 |  | INT32 | size,
 |  | INT32 * | pRetSize
 | ) |  |

Description
The function is called to transmit a RAW packet over an IPv6 network.

Parameters:
[in] | hSock | Socket handle using which the packet is sent out.
[in] | buf | Data Buffer which is to be sent out.
[in] | size | Length of the data buffer to be sent out.
[out] | pRetSize | Actual Length of data sent out.
Return values:
Success - 0 Error - Non Zero


NDK Stack Documentation: src/stack/raweth/raweth.c File Reference

src/stack/raweth/raweth.c File Reference

The file implements the interface to send and receive Raw Ethernet traffic using NDK stack and NIMU architecture. More...

Functions

int | RawEthTxPacket (HANDLE hRawEthSock, char *pBuffer, int len)
int | RawEthTxPacketNC (HANDLE hRawEthSock, char *pBuffer, int len, HANDLE hPkt)
int | RawEthRxPacket (PBM_Handle hPkt)

Detailed Description

The file implements the interface to send and receive Raw Ethernet traffic using NDK stack and NIMU architecture.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

int RawEthRxPacket ( PBM_Handle hPkt )

Description
This routine is the API interface routine which is called by the NIMU layer when the ethernet type doesnt match any of the well know standard ethernet types. This function checks if a raw ethernet socket object exists for the ethernet type in the packet and if so enqueus in the socket buffer for the application to receive.

Parameters:
[in] hPkt Handle to the packet which is to be passed up the NDK stack.
Return values:
-1 | - Error
0 | - Success

int RawEthTxPacket | ( | HANDLE | hRawEthSock,
 |  | char * | pBuffer,
 |  | int | len
 | ) |  |

Description
The function is the interface routine which is called to send a packet via a raw ethernet socket object.

Parameters:
[in] | hRawEthSock | Handle to the Raw ethernet socket.
[in] | pBuffer | Handle to the data buffer that needs to be sent
[in] | len | length of the data
Return values:
0 - Successfully sent out the packet. ENOBUFS - Error allocating memory for the packet. Packet not sent out.

int RawEthTxPacketNC | ( | HANDLE | hRawEthSock,
 |  | char * | pBuffer,
 |  | int | len,
 |  | HANDLE | hPkt
 | ) |  |

Description
The function is the interface routine which is called to send a packet without any copy via a raw ethernet socket object.

Parameters:
[in] | hRawEthSock | Handle to the Raw ethernet socket.
[in] | pBuffer | Handle to the data buffer that needs to be sent
[in] | len | length of the data
[in] | hPkt | Handle to the packet that needs to be sent
Return values:
0 - Successfully sent out the packet. EINVAL - Bad Packet / Buffer handles, packet not sent out.


NDK Stack Documentation: src/stack/rawethsock/rawethsock.c File Reference

src/stack/rawethsock/rawethsock.c File Reference

The file implements the RAWETHSOCK object which is the socket library for Raw Ethernet Sockets. Raw Ethernet Sockets are useful for transporting data over Ethernet network using custom Layer 2 Protocol types, i.e other than IPv4, IPv6 etc. More...

Functions

int | RawEthSockNew (int Family, int Type, int Protocol, int RxBufSize, int TxBufSize, HANDLE *phSock)
int | RawEthSockClose (HANDLE h)
int | RawEthSockCheck (HANDLE h, int IoType)
int | RawEthSockStatus (HANDLE h, int request, int *results)
int | RawEthSockShutdown (HANDLE h, int how)
int | RawEthSockSet (HANDLE hSock, int Type, int Prop, void *pbuf, int size)
int | RawEthSockGet (HANDLE hSock, int Type, int Prop, void *pbuf, int *psize)
int | RawEthSockRecvNC (HANDLE h, PBM_Pkt **ppPkt)
int | RawEthSockSend (HANDLE h, char *pBuf, INT32 size, INT32 *pRetSize)
int | RawEthSockSendNC (HANDLE h, char *pBuf, INT32 size, HANDLE hPkt, INT32 *pRetSize)
int | RawEthSockNotify (HANDLE h, int Notification)
PBM_Pkt * | RawEthSockCreatePacket (HANDLE hSock, UINT32 Payload, UINT32 *pError)

Detailed Description

The file implements the RAWETHSOCK object which is the socket library for Raw Ethernet Sockets. Raw Ethernet Sockets are useful for transporting data over Ethernet network using custom Layer 2 Protocol types, i.e other than IPv4, IPv6 etc.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

int RawEthSockCheck | ( | HANDLE | h,
 |  | int | IoType
 | ) |  |

Description
The function is called to determine if there is any operation pending on the socket.

Parameters:
[in] | h | Socket Handle which needs to be checked.
[in] | IoType | Type of operation which is pending.
Return values:
1 | - Operation is pending
0 | - Operation is not pending

int RawEthSockClose ( HANDLE h )

Description
The function closes a Raw ethernet Socket.

Parameters:
[in] h Socket Handle which is to be closed.
Return values:
Success | - 0
Error | - Non Zero

PBM_Pkt* RawEthSockCreatePacket | ( | HANDLE | hSock,
 |  | UINT32 | Payload,
 |  | UINT32 * | pError
 | ) |  |

Description
The function creates a Raw Ethernet packet for the SOCKRAWETH Family.

Parameters:
[in] | hSock | Handle of the socket for which the packet is being created.
[in] | Payload | Size of the packet
[in] | pError | Pointer to propagate back any errors from this API.
Return values:
Success | - Pointer to the packet created
Error | - NULL

int RawEthSockGet | ( | HANDLE | hSock,
 |  | int | Type,
 |  | int | Prop,
 |  | void * | pbuf,
 |  | int * | psize
 | ) |  |

Description
The function is used to get the socket parameters

Parameters:
[in] | hSock | Handle to the socket.
[in] Type Socket Level which is to be configured.
  • SOL_SOCKET: Socket Properties
[in] | Prop | The Property which needs to be configured.
[out] | pbuf | Data buffer where the value of property will be stored.
[out] | psize | Size of the Data buffer
Return values:
Success | - 0
Error | - Non Zero

int RawEthSockNew | ( | int | Family,
 |  | int | Type,
 |  | int | Protocol,
 |  | int | RxBufSize,
 |  | int | TxBufSize,
 |  | HANDLE * | phSock
 | ) |  |

Description
The function creates a new Raw Ethernet Socket.

Parameters:
[in] | Family | Socket Family. Only AF_RAWETH is supported.
[in] Type The type of socket being created
  • SOCKRAWETH : RAW Socket
[in] | Protocol | Valid Values are 0, IPPROTO_UDP and IPPROTO_TCP.
[in] | RxBufSize | Receive buffer size of the Socket.
[in] | TxBufSize | Transmit buffer size of the Socket.
[out] | phSock | Socket Handle which is returned.
Return values:
Success | - 0
Error | - Non Zero

int RawEthSockNotify | ( | HANDLE | h,
 |  | int | Notification
 | ) |  |

Description
This function is called by RawEthernet object to notify the socket of any read/write/connection status activity.

Parameters:
[in] | h | Socket handle on which activity has been detected
[in] | Notification | Notification Event detected.
Return values:
1 | - Message was accepted
0 | - Message was not accepted
The action taken on a rejected message is message and protocol dependent.

int RawEthSockRecvNC | ( | HANDLE | h,
 |  | PBM_Pkt ** | ppPkt
 | ) |  |

Description
The function receives data from a socket without copy.

Parameters:
[in] | h | Socket Handle from where data has to be read.
[in] | ppPkt | Pointer in which the packet received will be returned.
Return values:
Success | - 0
Error | - Non Zero

int RawEthSockSend | ( | HANDLE | h,
 |  | char * | pBuf,
 |  | INT32 | size,
 |  | INT32 * | pRetSize
 | ) |  |

Description
The function send data out using a socket. This is the "copy" implementation of send() wherein the data buffer is copied over by the L3 before being sent out. Thus, the buffer allocation and free is responsibility of the application.

Parameters:
[in] | h | Socket Handle from where data has to be send out
[in] | pBuf | Data Buffer which contains the data to be sent out.
[in] | size | Size of the data buffer passed.
[in] | pRetSize | Total number of data bytes actually sent out.
Return values:
Success | - 0
Error | - Non Zero

int RawEthSockSendNC | ( | HANDLE | h,
 |  | char * | pBuf,
 |  | INT32 | size,
 |  | HANDLE | hPkt,
 |  | INT32 * | pRetSize
 | ) |  |

Description
The function send data out using a socket without copy.

Parameters:
[in] | h | Socket Handle from where data has to be send out
[in] | pBuf | Data Buffer which contains the data to be sent out.
[in] | size | Size of the data buffer passed.
[in] | hPkt | Handle to the packet that needs to be sent out on wire.
[in] | pRetSize | Total number of data bytes actually sent out.
Return values:
Success | - 0
Error | - Non Zero

int RawEthSockSet | ( | HANDLE | hSock,
 |  | int | Type,
 |  | int | Prop,
 |  | void * | pbuf,
 |  | int | size
 | ) |  |

Description
The function is used to set the socket parameters

Parameters:
[in] | hSock | Handle to the socket.
[in] Type Socket Level which is to be configured.
  • SOL_SOCKET: Socket Properties
[in] | Prop | The Property which needs to be configured.
[in] | pbuf | Data buffer where the value of property is present
[in] | size | Size of the Data buffer
Return values:
Success | - 0
Error | - Non Zero

int RawEthSockShutdown | ( | HANDLE | h,
 |  | int | how
 | ) |  |

Description
The function shuts down the raw ethernet socket.

Parameters:
[in] h Socket Handle which is to be shutdown.
[out] how
  • SHUT_RD: Closes the Read pipe of the socket
  • SHUT_WR: Closes the Write pipe of the socket
  • SHUT_RDWR: Closes both the Read & Write pipes.
Return values:
Always returns 0.

int RawEthSockStatus | ( | HANDLE | h,
 |  | int | request,
 |  | int * | results
 | ) |  |

Description
The function returns the socket status.

Parameters:
[in] | h | Socket Handle which needs to be checked.
[in] | request | Type of request
[out] | results | Result buffer which has the result of the request.
Return values:
Success | - 0
Error | - Non Zero


NDK Stack Documentation: src/stack/rawethsock/rawethsock.h File Reference

src/stack/rawethsock/rawethsock.h File Reference

SOCKRAWETH private definitions. More...

Functions

int | RawEthSockPrAttach (SOCKRAWETH *ps)
int | RawEthSockPrDetach (SOCKRAWETH *ps)

Detailed Description

SOCKRAWETH private definitions.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

int RawEthSockPrAttach ( SOCKRAWETH * ps )

Description
The function attaches the socket to the appropriate global family list.

Parameters:
[in] ps The pointer to the socket which we will attach to the corresponding list.
Return values:
Success | - 0
Error | - Non Zero

int RawEthSockPrDetach ( SOCKRAWETH * ps )

Description
The function detaches the socket from the appropriate global family list.

Parameters:
[in] ps The pointer to the socket which we will detach from the corresponding list.
Return values:
Success | - 0
Error | - Non Zero


NDK Stack Documentation: src/stack/res6/sb6.c File Reference

src/stack/res6/sb6.c File Reference

The file implements the Socket Buffer for IPv6. More...

Functions

HANDLE | SB6New (INT32 Max, INT32 Min, uint Mode)
void | SB6Free (HANDLE h)
void | SB6Flush (HANDLE h, uint fFree)
INT32 | SB6Read (HANDLE h, INT32 Size, INT32 Off, UINT8 *pbDst, PSA_IN6 pPeer, UINT8 flagPeek)
INT32 | SB6Write (HANDLE h, INT32 Size, void *pData, PBM_Pkt *pPkt)
INT32 | SB6SetMax (HANDLE h, INT32 Max)

Detailed Description

The file implements the Socket Buffer for IPv6.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void SB6Flush | ( | HANDLE | h,
 |  | uint | fFree
 | ) |  |

Description
The function is called to flush out all data in the socket buffers. The function is similar to SB6Free except it does not clean out the SOCKET Buffer object itself.

Parameters:
[in] | h | Handle to the socket buffer object
[in] | fFree | Flag which indicates how to handle internal SB memory. When set to 1 the function will clean up the internal memory and when passed as 0; the internal memory block will be retained
Return values:
Not Applicable.

void SB6Free ( HANDLE h )

Description
The function is called to cleanup the socket buffer object for V6.

Parameters:
[in] h Handle to the socket buffer object which is to be cleaned up.
Return values:
Not Applicable.

HANDLE SB6New | ( | INT32 | Max,
 |  | INT32 | Min,
 |  | uint | Mode
 | ) |  |

Description
The function is called to create a new socket buffer for the IPv6 socket layer.

Parameters:
[in] | Max | Sets the Maximum Buffer size.
[in] | Min | Sets the Minimum Buffer size
[in] Mode This defines the mode in which the Socket Buffer will operate. Valid values for these are as follows:-
  • SB_MODE_LINEAR In this mode there is a single buffer and data is copied into it. This is used for TCP sockets.
  • SB_MODE_ATOMIC In this mode the received packets are enqueued into a linked list This is used for UDP sockets.
Return values:
Success | - 0
Error | - Non Zero

INT32 SB6Read | ( | HANDLE | h,
 |  | INT32 | Size,
 |  | INT32 | Off,
 |  | UINT8 * | pbDst,
 |  | PSA_IN6 | pPeer,
 |  | UINT8 | flagPeek
 | ) |  |

Description
The function is called to read data from the Socket Buffer object.

Parameters:
[in] | h | Handle to the socket buffer object
[in] | Size | Size of the Buffer in which data has to be copied.
[in] | Off | Offset
[in] | pbDst | Pointer to the destination where the data has to be copied to.
[in] | pPeer | Pointer to the peer information record; where information about the peer is recorded.
[in] | flagPeek | Flag which indicates if the function was just called to PEEK or READ. In PEEK i.e. flagPeek = 0 the pointers in the SOCKET buffer object are not updated.
Return values:
Error | - 0
Success | - Number of bytes read and copied into the supplied buffer.

INT32 SB6SetMax | ( | HANDLE | h,
 |  | INT32 | Max
 | ) |  |

Description
The function sets the max bytes held in the socket buffer.

Parameters:
[in] | h | Handle to the socket buffer object
[in] | Max | New MAXIMUM Size
Return values:
Success | - Returns the same value as 'Max'
Error | - Returns the original value i.e. '!Max'

INT32 SB6Write | ( | HANDLE | h,
 |  | INT32 | Size,
 |  | void * | pData,
 |  | PBM_Pkt * | pPkt
 | ) |  |

Description
The function is called to write data to the Socket Buffer object.

Parameters:
[in] | h | Handle to the socket buffer object
[in] | Size | Size of the Buffer from where data has to be copied.
[in] | pData | Pointer to where the data payload starts.
[in] | pPkt | Pointer to received packet whose data payload is added to the socket buffer.
Return values:
Error | - 0
Success | - Number of bytes copied into the socket buffer.


NDK Stack Documentation: src/stack/route6/route6.c File Reference

src/stack/route6/route6.c File Reference

The file has functions which handle the Route6 objects. More...

Functions

void | Route6Msg (uint Msg)
HANDLE | Rt6Create (UINT32 flags, IP6N IPAddr, IP6N IPMask, IP6N NextHop, UINT8 *mac_address, NETIF_DEVICE *ptr_device, UINT32 ValidLifetime)
HANDLE | Rt6Modify (HANDLE hRoute6, UINT32 flags, IP6N IPAddr, IP6N IPMask, IP6N NextHop, UINT8 *mac_address, NETIF_DEVICE *ptr_device, UINT32 ValidLifetime)
void | Rt6Free (HANDLE hRoute6)
void | Rt6FlushInterfaceRoutes (NETIF_DEVICE *ptr_device)
HANDLE | Rt6Find (UINT32 Flags, IP6N IPAddress, NETIF_DEVICE *ptr_device)
HANDLE | Rt6GetLLI (HANDLE hRoute6)
HANDLE | Rt6GetIF (HANDLE hRoute6)
UINT32 | Rt6GetMTU (HANDLE hRoute6)
int | Rt6IsLocalRoute (HANDLE hRoute)
void | Rt6IncRefCount (HANDLE hRoute6)
int | Rt6IsDefaultRoute (HANDLE hRoute6)
void | Rt6GetNetworkAddr (HANDLE hRoute6, IP6N *IPNet)
HANDLE | Rt6FindDefaultRouter (IP6N RouterAddress, NETIF_DEVICE *ptr_device)
void | Rt6Update (HANDLE hRoute, UINT32 RxPacketType, UINT8 *mac_address, UINT32 Flags, UINT32 Lifetime)
RT6_ENTRY * | Rt6GetTable (void)
void | Rt6CleanTable (RT6_ENTRY *ptr_list)

Detailed Description

The file has functions which handle the Route6 objects.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void Route6Msg ( uint Msg )

Description
Sevices intialization and resource messages for the ROUTE6 Module

This is for *internal* NDK Stack Usage.

Parameters:
[in] Msg The message event which needs to be handled.
Return values:
Not Applicable.

void Rt6CleanTable ( RT6_ENTRY * ptr_list )

Description
The function is called to clean the memory allocated by a previous call to Route6GetTable. The function cleans the replicated copy of the routing table. This function is available to system developers and can be called from outside kernel mode.

See also:
Route6GetTable
Parameters:
[in] ptr_list This is the head of the duplicate list which will be cleaned up.
Return values:
Not Applicable

HANDLE Rt6Create | ( | UINT32 | flags,
 |  | IP6N | IPAddr,
 |  | IP6N | IPMask,
 |  | IP6N | NextHop,
 |  | UINT8 * | mac_address,
 |  | NETIF_DEVICE * | ptr_device,
 |  | UINT32 | ValidLifetime
 | ) |  |

Description
The function creates a new routing entry.

Parameters:
[in] | flags | Specifies flags.
[in] | IPAddr | This is the IPv6 address for which the route is created.
[in] | IPMask | This is the IPv6 subnet mask.
[in] | NextHop | This is the Next Hop gateway associated with the route.
[in] | mac_address | This is the MAC Address associated with the ROUTE. This can be NULL.
[in] | ptr_device | This is the interface on which the route is created.
[in] | ValidLifetime | Timeout for which this route will remain valid. This is VALID only for CLONING Routes. Once the CLONING Route is timed out all HOST routes derived from this will also be removed. If this is INFINITE_LT then the routes are always active.
Return values:
Success | - Handle to the new route
Error | - 0

HANDLE Rt6Find | ( | UINT32 | Flags,
 |  | IP6N | IPAddress,
 |  | NETIF_DEVICE * | ptr_device
 | ) |  |

Description
The function searches the routing table for a route to be used.

Parameters:
[in] Flags Flags associated with the routing entry. Specifies the SEARCH Parameters that can be used to find a ROUTING Entry. FLG_RTE_HOST -> Search ROUTE6 table for only HOST routes FLG_RTE_CLONING -> Search ROUTE6 table for only NETWORK routes 0 -> Search all ROUTES (Host & Network) but Network routes are not cloned. FLG_RTF_CLONE -> Invalid. FLG_RTE_GATEWAY -> Invalid. (Use the Rt6FindDefaultRouter API)
The flags should be SET to FLG_RTE_HOST | FLG_RTE_CLONING | FLG_RTE_GATEWAY | FLG_RTF_CLONE From the IPv6 Routing Lookup API; since this will search all Valid Routes and if the ROUTE is a CLONING Route then it will be CLONED (FLG_RTF_CLONE) too.
Parameters:
[in] | IPAddress | The IPv6 address for which we are trying to find a ROUTE.
[in] | ptr_device | Device on which the route exists. This can be NULL.
Return values:
Match | - Handle to the routing 6 entry
No | Match - 0

HANDLE Rt6FindDefaultRouter | ( | IP6N | RouterAddress,
 |  | NETIF_DEVICE * | ptr_device
 | ) |  |

Description
The function checks if the Router Address Matches an entry in the default Router List.

Parameters:
[in] | RouterAddress | The Default router address we are trying to find.
[in] | ptr_device | Device on which the default router is being searched. If specified as NULL; then the device is wildcarded and all default routes are searched.
Return values:
Match | - Handle to the Default Router
No | Match - 0

void Rt6FlushInterfaceRoutes ( NETIF_DEVICE * ptr_device )

Description
The function cleans all routes on a specific interface

Parameters:
[in] ptr_device Pointer to the device for which all routes will be cleaned.
Return values:
Not Applicable.

void Rt6Free ( HANDLE hRoute6 )

Description
The function frees an existing routing entry.

Parameters:
[in] hRoute6 Route to be deleted.
Return values:
Not Applicable.

HANDLE Rt6GetIF ( HANDLE hRoute6 )

Description
The function gets the Interface handle associated with the Route6 object.

Parameters:
[in] hRoute6 The handle to the route6 object whose Interface handle we are interested in.
Return values:
Success | - Handle to the Interface
Error | - 0

HANDLE Rt6GetLLI ( HANDLE hRoute6 )

Description
The function returns the LLIv6 entry given the Route6 handle

Parameters:
[in] hRoute6 The handle to the route6 object whose LLIv6 handle we are interested in.
Return values:
Success | - Handle to the LLIv6
Error | - 0

UINT32 Rt6GetMTU ( HANDLE hRoute6 )

Description
The function gets the MTU associated with the Route6 object.

Parameters:
[in] hRoute6 The handle to the ROUTE6 Object whose MTU we are interested in.
Return values:
Success | - MTU of the route.
Error | - 0

void Rt6GetNetworkAddr | ( | HANDLE | hRoute6,
 |  | IP6N * | IPNet
 | ) |  |

Description
The function returns the Network Address associated with a route.

Parameters:
[in] | hRoute6 | The handle to the ROUTE6 Object.
[out] | IPNet | The handle to the Network Address to be returned.
Return values:
None

RT6_ENTRY* Rt6GetTable ( void )

Description
The function replicates the IPv6 Routing Table and creates a duplicate copy which is then returned back to the callee. The replicated routing table list needs to be cleaned by the callee. This function is available to system developers and can be called from outside kernel mode.

See also:
Route6CleanTable
Return values:
Head of the copy of the IPv6 Routing Table

void Rt6IncRefCount ( HANDLE hRoute6 )

Description
The function increments the reference count for a route6.

Parameters:
[in] hRoute6 The handle to the route6 object whose reference counter needs to be incremented.
Return values:
Success | - Handle to the Interface
Error | - 0

int Rt6IsDefaultRoute ( HANDLE hRoute6 )

Description
The function checks if the route specified is a default route?

Parameters:
[in] hRoute6 The handle to the ROUTE6 Object.
Return values:
Success | - 1.
Error | - 0

int Rt6IsLocalRoute ( HANDLE hRoute )

Description
The function checks if the route specified is LOCAL or not?

Parameters:
[in] hRoute The handle to the ROUTE6 Object.
Return values:
Success | - MTU of the route.
Error | - 0

HANDLE Rt6Modify | ( | HANDLE | hRoute6,
 |  | UINT32 | flags,
 |  | IP6N | IPAddr,
 |  | IP6N | IPMask,
 |  | IP6N | NextHop,
 |  | UINT8 * | mac_address,
 |  | NETIF_DEVICE * | ptr_device,
 |  | UINT32 | ValidLifetime
 | ) |  |

Description
The function modifies an existing routing entry.

Parameters:
[in] | hRoute6 | Handle to the route which is to be modified.
[in] | flags | Specifies flags.
[in] | IPAddr | This is the IPv6 address for which the route is created.
[in] | IPMask | This is the IPv6 subnet mask.
[in] | NextHop | This is the Next Hop gateway associated with the route.
[in] | mac_address | This is the MAC Address associated with the ROUTE. This can be NULL.
[in] | ptr_device | This is the interface on which the route is created.
[in] | ValidLifetime | Timeout for which this route will remain valid. This is VALID only for CLONING Routes. Once the CLONING Route is timed out all HOST routes derived from this will also be removed. If this is INFINITE_LT then the routes are always active.
Return values:
Success | - Handle to the modified route
Error | - 0

void Rt6Update | ( | HANDLE | hRoute,
 |  | UINT32 | RxPacketType,
 |  | UINT8 * | mac_address,
 |  | UINT32 | Flags,
 |  | UINT32 | Lifetime
 | ) |  |

Description
The function is used to update the ROUTE6 and corresponding LLI6 Entry. This is called whenever a Neighbor Discovery Packet is received and the Target Address is meant for us.

Parameters:
[in] | hRoute | Handle to the route we need to update.
[in] | RxPacketType | Type of NDISC Packet received.
[in] | mac_address | MAC Address information if present from the NDISC Packet.
[in] | Flags | The flags field in the Received NA Header. Its set to 0 for all other packets.
[in] | Lifetime | New Lifetime value to be updated with valid only for RA. Else ignored in this function.
Return values:
Not Applicable


NDK Stack Documentation: src/stack/sock/sockpcb.c File Reference

src/stack/sock/sockpcb.c File Reference

Object member functions for the Sock device object. These functions include protocol control type access to the SOCKET object. More...

Functions

void SockCleanPcb (uint SockProt, IPN IPAddress)

Detailed Description

Object member functions for the Sock device object. These functions include protocol control type access to the SOCKET object.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void SockCleanPcb | ( | uint | SockProt,
 |  | IPN | IPAddress
 | ) |  |

Description
The function cycles through all the socket entries for the specified protocol family and closes any socket which matches the IP Address specified. The function was added to ensure that when an IP address is modified then any sockets which are using the OLD IP Address should be closed.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | SockProt | Socket Family
[in] | IPAddress | OLD IP Address to which a socket might be bound to and which needs to be cleaned.
Return values:
Not Applicable


NDK Stack Documentation: src/stack/sock6/sock6.c File Reference

src/stack/sock6/sock6.c File Reference

The file implements the SOCK6 object which is the socket library for IPv6. More...

Functions

int | Sock6New (int Family, int Type, int Protocol, int RxBufSize, int TxBufSize, HANDLE *phSock)
int | Sock6Bind (HANDLE h, PSA pName)
int | Sock6Recv (HANDLE h, char *pBuf, INT32 size, int flags, PSA pPeer, INT32 *pRetSize)
int | Sock6Send (HANDLE h, char *pBuf, INT32 size, int flags, INT32 *pRetSize)
int | Sock6Connect (HANDLE h, PSA pName)
void | Sock6IntAbort (SOCK6 *ps)
int | Sock6Close (HANDLE h)
int | Sock6Disconnect (HANDLE h)
int | Sock6Check (HANDLE h, int IoType)
int | Sock6Status (HANDLE h, int request, int *results)
int | Sock6Shutdown (HANDLE h, int how)
int | Sock6GetName (HANDLE h, PSA pSockName, PSA pPeerName)
int | Sock6Listen (HANDLE h, int maxcon)
int | Sock6Accept (HANDLE h, HANDLE *phSock)
int | Sock6Set (HANDLE hSock, int Type, int Prop, void *pbuf, int size)
int | Sock6Get (HANDLE hSock, int Type, int Prop, void *pbuf, int *psize)

Detailed Description

The file implements the SOCK6 object which is the socket library for IPv6.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

int Sock6Accept | ( | HANDLE | h,
 |  | HANDLE * | phSock
 | ) |  |

Description
The function accepts connections on a socket which is listening for connections to arrive.

Parameters:
[in] | h | Socket Handle which is listening for connections.
[out] | phSock | Socket Handle which is created after accepting the connection.
Return values:
Success | - 0
Error | - Non Zero

int Sock6Bind | ( | HANDLE | h,
 |  | PSA | pName
 | ) |  |

Description
The function binds an address and port to the socket.

Parameters:
[in] | h | Socket Handle passed.
[in] | pName | IPv6 Address and Port Information to which the socket will be bound.
Return values:
Success | - 0
Error | - Non Zero

int Sock6Check | ( | HANDLE | h,
 |  | int | IoType
 | ) |  |

Description
The function is called to determine if there is any operation pending on the socket.

Parameters:
[in] | h | Socket Handle which needs to be checked.
[in] | IoType | Type of operation which is pending.
Return values:
1 | - Operation is pending
0 | - Operation is not pending

int Sock6Close ( HANDLE h )

Description
The function closes an IPv6 Socket.

Parameters:
[in] h Socket Handle which is to be closed.
Return values:
Success | - 0
Error | - Non Zero

int Sock6Connect | ( | HANDLE | h,
 |  | PSA | pName
 | ) |  |

Description
The function connects the socket.

Parameters:
[in] | h | Socket Handle which is to be connected.
[in] | pName | Socket Address Information to which the socket will be connected.
Return values:
Success | - 0
Error | - Non Zero

int Sock6Disconnect ( HANDLE h )

Description
The function disconnects an IPv6 Socket. This is not the same as close; since the socket is not cleaned up.

Parameters:
[in] h Socket Handle which is to be disconnected.
Return values:
Success | - 0
Error | - Non Zero

int Sock6Get | ( | HANDLE | hSock,
 |  | int | Type,
 |  | int | Prop,
 |  | void * | pbuf,
 |  | int * | psize
 | ) |  |

Description
The function is used to get the socket parameters

Parameters:
[in] | hSock | Handle to the socket.
[in] Type Socket Level which is to be configured.
  • SOL_SOCKET: Socket Properties
  • IPPROTO_TCP: TCP Properties
  • IPPROTO_IPV6: IPv6 Properties
[in] | Prop | The Property which needs to be configured.
[out] | pbuf | Data buffer where the value of property will be stored.
[out] | psize | Size of the Data buffer
Return values:
Success | - 0
Error | - Non Zero

int Sock6GetName | ( | HANDLE | h,
 |  | PSA | pSockName,
 |  | PSA | pPeerName
 | ) |  |

Description
The function gets information about the Local and Peer to which the socket has been connected.

Parameters:
[in] | h | Socket Handle for which the information is required.
[out] | pSockName | Local Information is populated in this.
[out] | pPeerName | Peer Information is populated in this.
Return values:
Always returns 0.

void Sock6IntAbort ( SOCK6 * ps )

Description
The function cleans up the internal memory for the V6 Socket.

Parameters:
[in] ps Pointer to the SOCK6 Object which will be cleaned up.
Return values:
Not Applicable.

int Sock6Listen | ( | HANDLE | h,
 |  | int | maxcon
 | ) |  |

Description
The function listens on STREAM sockets waiting for connections to arrive

Parameters:
[in] | h | Socket Handle on which connections are being listened for.
[in] | maxcon | Maximum number of connections that can be accepted.
Return values:
Success | - 0
Error | - Non Zero

int Sock6New | ( | int | Family,
 |  | int | Type,
 |  | int | Protocol,
 |  | int | RxBufSize,
 |  | int | TxBufSize,
 |  | HANDLE * | phSock
 | ) |  |

Description
The function creates a new IPv6 Socket.

Parameters:
[in] | Family | Socket Family. Only AF_INET6 is supported.
[in] Type The type of socket being created
  • SOCK_DGRAM : UDP Socket
  • SOCK_STREAM: TCP Socket
  • SOCK_RAW : RAW Socket (TBD)
[in] | Protocol | Valid Values are 0, IPPROTO_UDP and IPPROTO_TCP.
[in] | RxBufSize | Receive buffer size of the V6 Socket.
[in] | TxBufSize | Transmit buffer size of the V6 Socket.
[out] | phSock | Socket Handle which is returned.
Return values:
Success | - 0
Error | - Non Zero

int Sock6Recv | ( | HANDLE | h,
 |  | char * | pBuf,
 |  | INT32 | size,
 |  | int | flags,
 |  | PSA | pPeer,
 |  | INT32 * | pRetSize
 | ) |  |

Description
The function receives data from a socket.

Parameters:
[in] | h | Socket Handle from where data has to be read.
[in] | pBuf | Data Buffer where data has to be copied after it is read from the socket.
[in] | size | Size of the data buffer passed.
[in] | flags | Flags
[in] | pPeer | Peer Information from where the packet was received.
[in] | pRetSize | Total number of data bytes actually received.
Return values:
Success | - 0
Error | - Non Zero

int Sock6Send | ( | HANDLE | h,
 |  | char * | pBuf,
 |  | INT32 | size,
 |  | int | flags,
 |  | INT32 * | pRetSize
 | ) |  |

Description
The function send data out from a socket.

Parameters:
[in] | h | Socket Handle from where data has to be send out
[in] | pBuf | Data Buffer which contains the data to be sent out.
[in] | size | Size of the data buffer passed.
[in] | flags | Flags
[in] | pRetSize | Total number of data bytes actually sent out.
Return values:
Success | - 0
Error | - Non Zero

int Sock6Set | ( | HANDLE | hSock,
 |  | int | Type,
 |  | int | Prop,
 |  | void * | pbuf,
 |  | int | size
 | ) |  |

Description
The function is used to set the socket parameters

Parameters:
[in] | hSock | Handle to the socket.
[in] Type Socket Level which is to be configured.
  • SOL_SOCKET: Socket Properties
  • IPPROTO_TCP: TCP Properties
  • IPPROTO_IPV6: IPv6 Properties
[in] | Prop | The Property which needs to be configured.
[in] | pbuf | Data buffer where the value of property is present
[in] | size | Size of the Data buffer
Return values:
Success | - 0
Error | - Non Zero

int Sock6Shutdown | ( | HANDLE | h,
 |  | int | how
 | ) |  |

Description
The function shuts down the V6 socket.

Parameters:
[in] h Socket Handle which is to be shutdown.
[out] how
  • SHUT_RD: Closes the Read pipe of the socket
  • SHUT_WR: Closes the Write pipe of the socket
  • SHUT_RDWR: Closes both the Read & Write pipes.
Return values:
Always returns 0.

int Sock6Status | ( | HANDLE | h,
 |  | int | request,
 |  | int * | results
 | ) |  |

Description
The function returns the socket status.

Parameters:
[in] | h | Socket Handle which needs to be checked.
[in] | request | Type of request
[out] | results | Result buffer which has the result of the request.
Return values:
Success | - 0
Error | - Non Zero


NDK Stack Documentation: src/stack/sock6/sock6.h File Reference

src/stack/sock6/sock6.h File Reference

SOCK6 private definitions. More...

Functions

void | Sock6IntAbort (SOCK6 *ps)
int | Sock6PrAttach (SOCK6 *ps)
int | Sock6PrDetach (SOCK6 *ps)
void | Sock6PrCtlError (SOCK6 *ps, uint Code)

Detailed Description

SOCK6 private definitions.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void Sock6IntAbort ( SOCK6 * ps )

Description
The function cleans up the internal memory for the V6 Socket.

Parameters:
[in] ps Pointer to the SOCK6 Object which will be cleaned up.
Return values:
Not Applicable.

int Sock6PrAttach ( SOCK6 * ps )

Description
The function attaches the SOCKET to the appropriate global family list.

Parameters:
[in] ps The pointer to the socket which we will attach to the corresponding list.
Return values:
Success | - 0
Error | - Non Zero

void Sock6PrCtlError | ( | SOCK6 * | ps,
 |  | uint | Code
 | ) |  |

Description
The function notifies the socket of a problem. Sets the appropriate error code on the socket.

Parameters:
[in] | ps | The pointer to the socket to which the error needs to be notified.
[in] | Code | Error code indicating the problem.
Return values:
None

int Sock6PrDetach ( SOCK6 * ps )

Description
The function detaches the SOCKET from the appropriate global family list.

Parameters:
[in] ps The pointer to the socket which we will detach from the corresponding list.
Return values:
Success | - 0
Error | - Non Zero


NDK Stack Documentation: src/stack/sock6/sock6int.c File Reference

src/stack/sock6/sock6int.c File Reference

The file implements the SOCKET6 Family. More...

Functions

void | Sock6SpawnAbort (HANDLE h)
int | Sock6Notify (HANDLE h, int Notification)
HANDLE | Sock6ValidateRoute (HANDLE h)
PBM_Pkt * | Sock6CreatePacket (HANDLE hSock, uint Payload, uint NextHeader)

Detailed Description

The file implements the SOCKET6 Family.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

PBM_Pkt* Sock6CreatePacket | ( | HANDLE | hSock,
 |  | uint | Payload,
 |  | uint | NextHeader
 | ) |  |

Description
The function creates an IPv6 packet for the SOCKET6 Family. It fills in the IPv6 header of the packet with values from the socket if a valid handle is passed, else with defaults.

Parameters:
[in] | hSock | Handle of the socket for which the packet is being created.
[in] | Payload | Size of the packet
[in] | NextHeader | Size of the packet
Return values:
Success | - Pointer to the packet created
Error | - NULL

int Sock6Notify | ( | HANDLE | h,
 |  | int | Notification
 | ) |  |

Description
This function is called by Layer4 to notify the socket of any read/write/connection status activity.

Parameters:
[in] | h | Socket handle on which activity has been detected
[in] | Notification | Notification Event detected.
Return values:
1 | - Message was accepted
0 | - Message was not accepted
The action taken on a rejected message is message and protocol dependent.

void Sock6SpawnAbort ( HANDLE h )

Description
This function is called to abort a socket spawned via a call to Sock6PcbResolve

Parameters:
[in] h Socket handle of the Spawned socket.
Return values:
Not Applicable.

HANDLE Sock6ValidateRoute ( HANDLE h )

Description
This function finds and caches a route in the SOCK6 object. The Foreign IP associated with the socket is used to determine the route.

Parameters:
[in] h Socket handle on which route is to be cached
Return values:
Success | - Handle to the ROUTE6 object
Error | - 0


NDK Stack Documentation: src/stack/sock6/sock6pcb.c File Reference

src/stack/sock6/sock6pcb.c File Reference

Object member functions for the Sock6 device object. These functions include protocol control type access to the SOCKET object. More...

Functions

int | Sock6PcbAttach (HANDLE hSock)
int | Sock6PcbDetach (HANDLE hSock)
int | Sock6PcbBind (HANDLE hSock, IP6N LIP, uint LPort)
int | Sock6PcbConnect (HANDLE hSock, IP6N FIP, uint FPort)
HANDLE | Sock6PcbResolveChain (HANDLE hSock, uint SockProt, uint Prot, IP6N LIP, uint LPort, IP6N FIP, uint FPort)
HANDLE | Sock6PcbResolve (uint SockProt, IP6N LIP, uint LPort, IP6N FIP, uint FPort, uint Match)
void | Sock6PcbRtChange (HANDLE hRt6)
void | Sock6PcbCleanup ()
void | Sock6CleanPcb (uint SockProt, IP6N IPAddress)

Detailed Description

Object member functions for the Sock6 device object. These functions include protocol control type access to the SOCKET object.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void Sock6CleanPcb | ( | uint | SockProt,
 |  | IP6N | IPAddress
 | ) |  |

Description
The function cycles through all the socket entries for the specified protocol family and closes any socket which matches the IP Address specified. The function was added to ensure that when an IP address is modified then any sockets which are using the OLD IP Address should be closed.

This is for *internal* NDK Stack Usage.

Parameters:
[in] | SockProt | Socket Family
[in] | IPAddress | OLD IP Address to which a socket might be bound to and which needs to be cleaned.
Return values:
Not Applicable

int Sock6PcbAttach ( HANDLE hSock )

Description
The function attaches the SOCKET to the appropriate list.

Parameters:
[in] hSock The pointer to the socket which we will attach to the corresponding list.
Return values:
Success | - 0
Error | - Non Zero

int Sock6PcbBind | ( | HANDLE | hSock,
 |  | IP6N | LIP,
 |  | uint | LPort
 | ) |  |

Description
The function binds the socket to the specific Local IP and Port.

Parameters:
[in] | hSock | Handle to the socket which is to be bound.
[in] | LIP | Local IPv6 Address to which the socket is to bound.
[in] | LPort | Local Port to which the socket is to be bound.
Return values:
Success | - 0
Error | - Non Zero

void Sock6PcbCleanup ( )

Description
The function aborts all closing sockets in the IPv6 socket family.

Return values:
Not Applicable.

int Sock6PcbConnect | ( | HANDLE | hSock,
 |  | IP6N | FIP,
 |  | uint | FPort
 | ) |  |

Description
The function sets the Foreign IP And Port in the SOCKET to the ones passed in this API. The function ensures there is no duplication present.

Parameters:
[in] | hSock | Socket Handle to be configured with the IP and Port.
[in] | FIP | Foreign IP Address
[in] | FPort | Foreign Port
Return values:
Success | - 0
Error | - Non Zero

int Sock6PcbDetach ( HANDLE hSock )

Description
The function detaches the SOCKET from the appropriate list.

Parameters:
[in] hSock The pointer to the socket which we will detach from the corresponding list.
Return values:
Success | - 0
Error | - Non Zero

HANDLE Sock6PcbResolve | ( | uint | SockProt,
 |  | IP6N | LIP,
 |  | uint | LPort,
 |  | IP6N | FIP,
 |  | uint | FPort,
 |  | uint | Match
 | ) |  |

Description
The function finds a socket matching the criteria given.

Parameters:
[in] | SockProt | The Socket Protocol Family.
[in] | LIP | The Local IPv6 Address
[in] | LPort | The Local Port
[in] | FIP | The Foreign IPv6 Address
[in] | FPort | The Foreign Port
[in] Match The type of resolution which is being sought.
  • SOCK_RESOLVE_EXACT: Exact Match all parameters should match
  • SOCK_RESOLVE_BEST : Best Possible Match.
  • SOCK_RESOLVE_SPAWN: Match and then spawn a new socket.
Return values:
Handle to Socket Matching the search criteria.

HANDLE Sock6PcbResolveChain | ( | HANDLE | hSock,
 |  | uint | SockProt,
 |  | uint | Prot,
 |  | IP6N | LIP,
 |  | uint | LPort,
 |  | IP6N | FIP,
 |  | uint | FPort
 | ) |  |

Description
The function finds a socket matching the criteria given. The function unlike the SockPcbResolve can be used to start searches from various points in the list.

Parameters:
[in] | hSock | The socket handle from where the search will start. A value of 0 here indicates that the search is started from the begining of the list.
[in] | SockProt | The Socket Protocol Family.
[in] | Prot | The Protocol family
[in] | LIP | The Local IPv6 Address
[in] | LPort | The Local Port
[in] | FIP | The Foreign IPv6 Address
[in] | FPort | The Foreign Port
Return values:
Handle to Socket Matching the search criteria.

void Sock6PcbRtChange ( HANDLE hRt6 )

Description
The function is called from the ROUTE6 Module to indicate that there has been a change in the IPv6 ROUTING Table. The function invalidates all sockets which have cached this route This will ensure that subsequent packets being transmitted via these sockets relook the routing table for the correct match.

Parameters:
[in] hRt6 Handle to the V6 routing entry which has expired.
Return values:
Not Applicable


NDK Stack Documentation: src/stack/sock6/sock6prot.c File Reference

src/stack/sock6/sock6prot.c File Reference

The file implements the SOCKET6 Family. More...

Functions

int | Sock6PrAttach (SOCK6 *ps)
int | Sock6PrDetach (SOCK6 *ps)
void | Sock6PrCtlError (SOCK6 *ps, uint Code)

Detailed Description

The file implements the SOCKET6 Family.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

int Sock6PrAttach ( SOCK6 * ps )

Description
The function attaches the SOCKET to the appropriate global family list.

Parameters:
[in] ps The pointer to the socket which we will attach to the corresponding list.
Return values:
Success | - 0
Error | - Non Zero

void Sock6PrCtlError | ( | SOCK6 * | ps,
 |  | uint | Code
 | ) |  |

Description
The function notifies the socket of a problem. Sets the appropriate error code on the socket.

Parameters:
[in] | ps | The pointer to the socket to which the error needs to be notified.
[in] | Code | Error code indicating the problem.
Return values:
None

int Sock6PrDetach ( SOCK6 * ps )

Description
The function detaches the SOCKET from the appropriate global family list.

Parameters:
[in] ps The pointer to the socket which we will detach from the corresponding list.
Return values:
Success | - 0
Error | - Non Zero


NDK Stack Documentation: src/stack/tcp6/tcp6.c File Reference

src/stack/tcp6/tcp6.c File Reference

The file has generic functions used by the TCP6 Module. More...

Functions

void | TCP6TimeoutAdd (TCPPROT *pt)
void | TCP6TimeoutRemove (TCPPROT *pt)
void | TCP6TimeoutCheck ()

Detailed Description

The file has generic functions used by the TCP6 Module.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void TCP6TimeoutAdd ( TCPPROT * pt )

Description
The function adds the TCP6 Protocol object to the timeout list

Parameters:
[in] pt The TCP Protocl object to be added to the timeout list.
Return values:
Not Applicable.

void TCP6TimeoutCheck ( )

Description
The function scan the timeout list for TCP timeouts

Return values:
Not Applicable.

void TCP6TimeoutRemove ( TCPPROT * pt )

Description
The function removes the TCP6 Protocol object to the timeout list

Parameters:
[in] pt The TCP Protocl object to be removed from the timeout list.
Return values:
Not Applicable.


NDK Stack Documentation: src/stack/tcp6/tcp6.h File Reference

src/stack/tcp6/tcp6.h File Reference

The file contains private definitions for the TCP Module which runs over IPv6. More...

Functions

void | TCP6Drop (TCPPROT *pt, int Error)
void | TCP6Close (TCPPROT *pt)
int | TCP6Output (TCPPROT *pt)
void | TCP6TimeoutAdd (TCPPROT *pt)
void | TCP6TimeoutRemove (TCPPROT *pt)
uint | TCP6ValidateMetrics (TCPPROT *pt, uint rcvmss)
void | TCP6GenPacket (TCPPROT *pt, IP6N IPDst, uint PortDst, IP6N IPSrc, uint PortSrc, UINT32 ack, UINT32 seq, int flags)

Detailed Description

The file contains private definitions for the TCP Module which runs over IPv6.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void TCP6Close ( TCPPROT * pt )

Description
The function is called to close down the TCP Protocol block.

Parameters:
[in] pt Pointer to the TCP Protocol Information block.
Return values:
Not Applicable.

void TCP6Drop | ( | TCPPROT * | pt,
 |  | int | Error
 | ) |  |

Description
The function drops a TCP side "socket" with ABORT

Parameters:
[in] | pt | Handle to the TCP protocol information
[in] | Error | Error Code.
Return values:
Not applicable.

void TCP6GenPacket | ( | TCPPROT * | pt,
 |  | IP6N | IPDst,
 |  | uint | PortDst,
 |  | IP6N | IPSrc,
 |  | uint | PortSrc,
 |  | UINT32 | ack,
 |  | UINT32 | seq,
 |  | int | flags
 | ) |  |

Description
The function is the used to generate and tranmit TCP Control Packets is received over IPv6.

Parameters:
[in] | pt | TCP Protocol Information
[in] | IPDst | Destination IP Address to which the packet will be destined.
[in] | PortDst | Destination Port to which the packet will be sent.
[in] | IPSrc | Source IP Address
[in] | PortSrc | Source Port
[in] | ack | Acknowledgment Number
[in] | seq | Sequence Number
[in] | flags | Control flags to be added to the packet.
Return values:
Not Applicable.

int TCP6Output ( TCPPROT * pt )

Description
The function is called to transmit the TCP packet over IPv6

Parameters:
[in] pt Pointer to the TCP control block
Return values:
Not Applicable.

void TCP6TimeoutAdd ( TCPPROT * pt )

Description
The function adds the TCP6 Protocol object to the timeout list

Parameters:
[in] pt The TCP Protocl object to be added to the timeout list.
Return values:
Not Applicable.

void TCP6TimeoutRemove ( TCPPROT * pt )

Description
The function removes the TCP6 Protocol object to the timeout list

Parameters:
[in] pt The TCP Protocl object to be removed from the timeout list.
Return values:
Not Applicable.

uint TCP6ValidateMetrics | ( | TCPPROT * | pt,
 |  | uint | rcvmss
 | ) |  |

Description
The function is called to update the TCP Information based on the socket route.

Parameters:
[in] | pt | Handle to the TCP protocol information
[in] | rcvmss | Received MSS.
Return values:
Current MSS to advertise.


NDK Stack Documentation: src/stack/tcp6/tcp6in.c File Reference

src/stack/tcp6/tcp6in.c File Reference

The file has functions which handle the reception of TCP packets over the IPv6 network. More...

Functions

void TCP6Input (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)

Detailed Description

The file has functions which handle the reception of TCP packets over the IPv6 network.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void TCP6Input | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function is the receive handler which is invoked when a TCP packet is received over IPv6.

Parameters:
[in] | pPkt | The actual TCP packet received.
[in] | ptr_ipv6hdr | The IPv6 Header of the received TCP packet.
Return values:
Not Applicable.


NDK Stack Documentation: src/stack/tcp6/tcp6out.c File Reference

src/stack/tcp6/tcp6out.c File Reference

The file has functions which handle the transmission of TCP packets over the IPv6 network. More...

Functions

int | TCP6Output (TCPPROT *pt)
void | TCP6GenPacket (TCPPROT *pt, IP6N IPDst, uint PortDst, IP6N IPSrc, uint PortSrc, UINT32 ack, UINT32 seq, int flags)

Detailed Description

The file has functions which handle the transmission of TCP packets over the IPv6 network.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void TCP6GenPacket | ( | TCPPROT * | pt,
 |  | IP6N | IPDst,
 |  | uint | PortDst,
 |  | IP6N | IPSrc,
 |  | uint | PortSrc,
 |  | UINT32 | ack,
 |  | UINT32 | seq,
 |  | int | flags
 | ) |  |

Description
The function is the used to generate and tranmit TCP Control Packets is received over IPv6.

Parameters:
[in] | pt | TCP Protocol Information
[in] | IPDst | Destination IP Address to which the packet will be destined.
[in] | PortDst | Destination Port to which the packet will be sent.
[in] | IPSrc | Source IP Address
[in] | PortSrc | Source Port
[in] | ack | Acknowledgment Number
[in] | seq | Sequence Number
[in] | flags | Control flags to be added to the packet.
Return values:
Not Applicable.

int TCP6Output ( TCPPROT * pt )

Description
The function is called to transmit the TCP packet over IPv6

Parameters:
[in] pt Pointer to the TCP control block
Return values:
Not Applicable.


NDK Stack Documentation: src/stack/tcp6/tcp6prot.c File Reference

src/stack/tcp6/tcp6prot.c File Reference

The file handle the TCP Protocol functions for V6. More...

Functions

int | TCP6PrAttach (HANDLE h, HANDLE *phTcp)
int | TCP6PrListen (HANDLE h, HANDLE hTcp)
void | TCP6PrInherit (HANDLE hParent, HANDLE hTcpParent, HANDLE hChild, HANDLE hTcpChild)
uint | TCP6ValidateMetrics (TCPPROT *pt, uint rcvmss)
void | TCP6Close (TCPPROT *pt)
void | TCP6Drop (TCPPROT *pt, int Error)
int | TCP6PrDetach (HANDLE hSock, HANDLE *phTcp, int fatal)
int | TCP6PrConnect (HANDLE h, HANDLE hTcp)
int | TCP6PrDisconnect (HANDLE hSock, HANDLE hTcp)
int | TCP6PrRecv (HANDLE h, HANDLE hTcp)
int | TCP6PrSend (HANDLE h, HANDLE hTcp, UINT8 *pBuf, INT32 Size, INT32 *pRetSize)
int | TCP6PrSendOOB (HANDLE h, HANDLE hTcp, UINT8 *pBuf, INT32 Size, INT32 *pRetSize)
uint | TCP6PrGetState (HANDLE hParent, HANDLE hTcp)
void | TCP6PrCtlError (HANDLE h, HANDLE hTcp, uint Code, int Error)
int | TCP6PrSetOption (HANDLE h, HANDLE hTcp, int Prop, void *pBuf, int size)
int | TCP6PrGetOption (HANDLE h, HANDLE hTcp, int Prop, void *pBuf, int *psize)

Detailed Description

The file handle the TCP Protocol functions for V6.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void TCP6Close ( TCPPROT * pt )

Description
The function is called to close down the TCP Protocol block.

Parameters:
[in] pt Pointer to the TCP Protocol Information block.
Return values:
Not Applicable.

void TCP6Drop | ( | TCPPROT * | pt,
 |  | int | Error
 | ) |  |

Description
The function drops a TCP side "socket" with ABORT

Parameters:
[in] | pt | Handle to the TCP protocol information
[in] | Error | Error Code.
Return values:
Not applicable.

int TCP6PrAttach | ( | HANDLE | h,
 |  | HANDLE * | phTcp
 | ) |  |

Description
The function is used to create a new TCP socket and is called from the SOCK6 module.

Parameters:
[in] | h | Handle to the socket being created.
[out] | phTcp | The TCP Protocol information which is populated.
Return values:
Success | - 0
Error | - Non Zero

int TCP6PrConnect | ( | HANDLE | h,
 |  | HANDLE | hTcp
 | ) |  |

Description
The function requests a connection for a TCP6 socket.

Parameters:
[in] | h | Handle to the socket.
[in] | hTcp | Handle to the TCP Protocol Information block.
Return values:
Always returns 0.

void TCP6PrCtlError | ( | HANDLE | h,
 |  | HANDLE | hTcp,
 |  | uint | Code,
 |  | int | Error
 | ) |  |

Description
The function is called to indicate there is an error detected by the reception of an error ICMPv6 packet.

Parameters:
[in] | h | Handle to the socket.
[in] | hTcp | Handle to the TCP Protocol Information block.
[in] | Code | Obsolete
[in] | Error | Error Code.
Return values:
Not Applicable

int TCP6PrDetach | ( | HANDLE | hSock,
 |  | HANDLE * | phTcp,
 |  | int | fatal
 | ) |  |

Description
The function closes the TCP side "socket", detaches and free resources

Parameters:
[in] | hSock | Handle to the socket.
[in] | phTcp | Handle to the TCP Protocol Information block.
[in] | fatal | Status flag which if set to 1 indicates that the socket should be closed immediately and if set to 0 indicates that the TCP close state machine is invoked.
Return values:
Always returns 0.

int TCP6PrDisconnect | ( | HANDLE | hSock,
 |  | HANDLE | hTcp
 | ) |  |

Description
The function disconnects a TCP side "socket" - performs "half close"

Parameters:
[in] | hSock | Handle to the socket.
[in] | hTcp | Handle to the TCP Protocol Information block.
Return values:
Always returns 0.

int TCP6PrGetOption | ( | HANDLE | h,
 |  | HANDLE | hTcp,
 |  | int | Prop,
 |  | void * | pBuf,
 |  | int * | psize
 | ) |  |

Description
The function is used to get the TCP options.

Parameters:
[in] | h | Handle to the socket.
[in] | hTcp | Handle to the TCP Protocol Information block.
[in] | Prop | The Property which needs to be configured.
[out] | pBuf | Data buffer where the value of property will be copied.
[out] | psize | Size of the Data buffer
Return values:
Success | - 0
Error | - Non Zero

uint TCP6PrGetState | ( | HANDLE | hParent,
 |  | HANDLE | hTcp
 | ) |  |

Description
The function returns the TCP State

Parameters:
[in] | hParent | Handle to the socket.
[in] | hTcp | Handle to the TCP Protocol Information Block.
Return values:
TCP State

void TCP6PrInherit | ( | HANDLE | hParent,
 |  | HANDLE | hTcpParent,
 |  | HANDLE | hChild,
 |  | HANDLE | hTcpChild
 | ) |  |

Description
The function is called to inherit TCP protocol properties from parent to child.

Parameters:
[in] | hParent | Handle to the parent socket.
[in] | hTcpParent | Handle to the parent TCP protocol information
[in] | hChild | Handle to the child socket.
[in] | hTcpChild | Handle to the child TCP protocol information
Return values:
Not Applicable

int TCP6PrListen | ( | HANDLE | h,
 |  | HANDLE | hTcp
 | ) |  |

Description
The function is called by the SOCKET Layer to indicate that the socket has been marked as LISTENING. This internally implies that the socket can no longer be used for data reception and transmission so the function clears the internal protocol resources.

Parameters:
[in] | h | Handle to the socket
[in] | hTcp | Handle to the TCP protocol information
Return values:
Always returns 0.

int TCP6PrRecv | ( | HANDLE | h,
 |  | HANDLE | hTcp
 | ) |  |

Description
The function deals with Rx data being removed from buffer

Parameters:
[in] | h | Handle to the socket.
[in] | hTcp | Handle to the TCP Protocol Information block.
Return values:
Always returns 0.

int TCP6PrSend | ( | HANDLE | h,
 |  | HANDLE | hTcp,
 |  | UINT8 * | pBuf,
 |  | INT32 | Size,
 |  | INT32 * | pRetSize
 | ) |  |

Description
The function sends data

Parameters:
[in] | h | Handle to the socket.
[in] | hTcp | Handle to the TCP Protocol Information block.
[in] | pBuf | Pointer to the data Buffer to be transmitted.
[in] | Size | Size of the data buffer.
[out] | pRetSize | Number of bytes sent out.
Return values:
Always returns 0.

int TCP6PrSendOOB | ( | HANDLE | h,
 |  | HANDLE | hTcp,
 |  | UINT8 * | pBuf,
 |  | INT32 | Size,
 |  | INT32 * | pRetSize
 | ) |  |

Description
The function sends OOB data

Parameters:
[in] | h | Handle to the socket.
[in] | hTcp | Handle to the TCP Protocol Information block.
[in] | pBuf | Pointer to the data Buffer to be transmitted.
[in] | Size | Size of the data buffer.
[out] | pRetSize | Number of bytes sent out.
Return values:
Always returns 0.

int TCP6PrSetOption | ( | HANDLE | h,
 |  | HANDLE | hTcp,
 |  | int | Prop,
 |  | void * | pBuf,
 |  | int | size
 | ) |  |

Description
The function is used to set the TCP options.

Parameters:
[in] | h | Handle to the socket.
[in] | hTcp | Handle to the TCP Protocol Information block.
[in] | Prop | The Property which needs to be configured.
[in] | pBuf | Data buffer where the value of property is present
[in] | size | Size of the Data buffer
Return values:
Success | - 0
Error | - Non Zero

uint TCP6ValidateMetrics | ( | TCPPROT * | pt,
 |  | uint | rcvmss
 | ) |  |

Description
The function is called to update the TCP Information based on the socket route.

Parameters:
[in] | pt | Handle to the TCP protocol information
[in] | rcvmss | Received MSS.
Return values:
Current MSS to advertise.


NDK Stack Documentation: src/stack/tcp6/tcp6time.c File Reference

src/stack/tcp6/tcp6time.c File Reference

The file has TCP6 Time Management routines. More...

Detailed Description

The file has TCP6 Time Management routines.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.


NDK Stack Documentation: src/stack/udp6/udp6.c File Reference

src/stack/udp6/udp6.c File Reference

The file implements the UDP protocol over IPv6. More...

Functions

int | Udp6Output (HANDLE hSock, UINT8 *buf, INT32 size, INT32 *pRetSize)
void | Udp6Input (PBM_Pkt *pPkt, IPV6HDR *ptr_ipv6hdr)

Detailed Description

The file implements the UDP protocol over IPv6.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void Udp6Input | ( | PBM_Pkt * | pPkt,
 |  | IPV6HDR * | ptr_ipv6hdr
 | ) |  |

Description
The function is the receive handler which is invoked when a UDP packet is received over IPv6.

Parameters:
[in] | pPkt | The actual UDP6 packet received.
[in] | ptr_ipv6hdr | The IPv6 Header of the received UDP packet.
Return values:
Not Applicable.

int Udp6Output | ( | HANDLE | hSock,
 |  | UINT8 * | buf,
 |  | INT32 | size,
 |  | INT32 * | pRetSize
 | ) |  |

Description
The function is called to transmit a UDP packet over an IPv6 network.

Parameters:
[in] | hSock | Socket handle using which the packet is sent out.
[in] | buf | Data Buffer which is to be sent out.
[in] | size | Length of the data buffer to be sent out.
[out] | pRetSize | Actual Length of data sent out.
Return values:
Success | - 0
Error | - Non Zero


NDK Stack Documentation: src/stack/utils/listlib.c File Reference

src/stack/utils/listlib.c File Reference

Implementation of a doubly linked list. More...

Functions

void | list_add (LIST_NODE **ptr_list, LIST_NODE *ptr_node)
void | list_cat (LIST_NODE **ptr_dst, LIST_NODE **ptr_src)
LIST_NODE * | list_remove (LIST_NODE **ptr_list)
int | list_remove_node (LIST_NODE **ptr_list, LIST_NODE *ptr_remove)
LIST_NODE * | list_get_head (LIST_NODE **ptr_list)
LIST_NODE * | list_get_next (LIST_NODE *ptr_list)
void | list_clean (LIST_NODE *ptr_list, void free(void *ptr))
LIST_NODE * | list_replicate (LIST_NODE *ptr_srcList, int size, void *alloc(UINT32 size), void free(void *ptr))

Detailed Description

Implementation of a doubly linked list.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

void list_add | ( | LIST_NODE ** | ptr_list,
 |  | LIST_NODE * | ptr_node
 | ) |  |

Description
The function is called to add a node to the list.

Parameters:
[in] | ptr_list | This is the list to which the node is to be added.
[in] | ptr_node | This is the node which is to be added.
Return values:
Not Applicable

void list_cat | ( | LIST_NODE ** | ptr_dst,
 |  | LIST_NODE ** | ptr_src
 | ) |  |

Description
The function is called to concatenate the src list to the end of the destination list.

Parameters:
[in] | ptr_dst | This is the head of the destination list.
[in] | ptr_src | This is the head of the source list.
Return values:
Not Applicable

void list_clean | ( | LIST_NODE * | ptr_list,
 |  | void | free(void *ptr)
 | ) |  |

Description
The function is used to clean a list which has been replicated.

See also:
list_replicate
Parameters:
[in] | ptr_list | This is the pointer to list which has been replicated and now needs to be cleaned up.
[in] | free | This is the memory cleanup API which is invoked to clean the nodes in the list.
Return values:
Not Applicable.

LIST_NODE* list_get_head ( LIST_NODE ** ptr_list )

Description
The function is used to get the head of the specific list

Parameters:
[in] ptr_list This is the pointer to the list.
Return values:
Head of the list (could be NULL if the list is empty)

LIST_NODE* list_get_next ( LIST_NODE * ptr_list )

Description
The function is used to get the next element in the list.

Parameters:
[in] ptr_list This is the pointer to the node in the list.
Return values:
Next element in the list. (could be NULL if this is the last element)

LIST_NODE* list_remove ( LIST_NODE ** ptr_list )

Description
The function is called to remove the head node from the list.

Parameters:
[in] ptr_list This is the pointer to the list from where nodes will be removed.
Return values:
Pointer to the head of the list.

int list_remove_node | ( | LIST_NODE ** | ptr_list,
 |  | LIST_NODE * | ptr_remove
 | ) |  |

Description
The function is called to remove the specified node from the list.

Parameters:
[in] | ptr_list | This is the pointer to the list from where node will be removed.
[in] | ptr_remove | This is the node which is to be removed.
Return values:
Success | - 0
Error | - -1

LIST_NODE* list_replicate | ( | LIST_NODE * | ptr_srcList,
 |  | int | size,
 |  | void * | alloc(UINT32 size),
 |  | void | free(void *ptr)
 | ) |  |

Description
The function is used to replicate a list. Replicating a list implies that each node in the source list is copied into the destination node and added to a destination list. This API involves memory allocation and callees are responsible for cleaning up the memory.

See also:
list_clean
Parameters:
[in] | ptr_srcList | This is the pointer to source list which needs to be replicated.
[in] | size | Size of the Node which is to be copied.
[in] | alloc | Memory Allocation API which is to be used.
[in] | free | Memory cleanup API which is to be used.
Return values:
Pointer to the head of the 'new' replicated list.


NDK Stack Documentation: src/stack/vlan/vlan.c File Reference

src/stack/vlan/vlan.c File Reference

The file implements the VLAN core stack functionality. More...

Functions

uint | VLANReceivePacket (PBM_Handle hPkt)
int | VLANAddDevice (uint index, UINT16 vlan_id, UINT8 default_priority, UINT8 prio_mapping[MAX_PRIO_VAL])
int | VLANDelDevice (UINT16 dev_index)
void | VLANInit (void)
void | VLANDeinit (void)

Detailed Description

The file implements the VLAN core stack functionality.

NOTE: (C) Copyright 2008, Texas Instruments, Inc.

Function Documentation

int VLANAddDevice | ( | uint | index,
 |  | UINT16 | vlan_id,
 |  | UINT8 | default_priority,
 |  | UINT8 | prio_mapping[MAX_PRIO_VAL]
 | ) |  |

Description
The API is available to user applications to be able to create a VLAN virtual device on a source interface

Parameters:
[in] | index | Source Interface Index on which the VLAN device is created
[in] | vlan_id | VLAN Identifier associated with the VLAN device
[in] | default_priority | Default User Priority configured in the VLAN packet if no packet priority is defined.
[in] | prio_mapping | The mapping which maps the packet priority to the VLAN user priority which is a part of the VLAN header.
Return values:
Index | of the new VLAN device - Success
<0 | - Error

void VLANDeinit ( void )

Description
The function is used to deinitialize the VLAN module. The function is called to close and shutdown all the VLAN enabled NIMU Network Interface objects which exist in the System

This is for *internal* NDK Stack Usage.

Return values:
Not Applicable.

int VLANDelDevice ( UINT16 dev_index )

Description
The API is available to user applications to be able to delete a previously created VLAN device.

Parameters:
[in] dev_index Index of the VLAN NIMU Interface Object which is to be deleted. This should be the same as the returned value from VLANAddDevice.
Return values:
0 | - Success
<0 | - Error

void VLANInit ( void )

Description
The function is used to initialize the VLAN module in the NDK core stack

This is for *internal* NDK Stack Usage.

Return values:
Not Applicable.

uint VLANReceivePacket ( PBM_Handle hPkt )

Description
The function is called by the NIMU Receive function when a VLAN packet is received. The function validates the packet and ensures that there is a valid VLAN node on the system which can process the packet.

This is for *internal* NDK Stack Usage.

Parameters:
[in] hPkt Handle to the packet which needs to be sent
Return values:
Encapsulated | Protocol - Success
0xFFFF | - Error


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- _ -

  • _jumbo_mmCheck() : jumbo_pbm.c
  • _jumbo_mmInit() : jumbo_pbm.c


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- k -

  • KeepDrops : _tcpstat
  • KeepProbe : _tcpstat
  • KeepTimeout : _tcpstat


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- l -

  • LastReachTS : LLI6_ENTRY
  • LastSendNS : LLI6_ENTRY
  • LinkMTU : IPV6_DEV_RECORD
  • links : BIND6_ENTRY
  • Links : FRAG6Q
  • links : LLI6_ENTRY
  • Links : _lli_info
  • links : RT6_ENTRY
  • LIP : SOCK6
  • LocalAddress : DREC
  • LocalPort : DREC
  • LocalV6Address : DREC
  • LPort : SOCK6


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- m -

  • MacAddr : LLI6_ENTRY , _lli_info
  • ManagedFlag : IPV6_DEV_RECORD
  • MaxSpawn : DREC


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- n -

  • NetworkAddr : RT6_ENTRY
  • NextHdrOffset : FRAG6Q
  • NextHdrValue : FRAG6Q
  • NextHop : RT6_ENTRY
  • NumProbes : BIND6_ENTRY , LLI6_ENTRY


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- o -

  • OOBData : SOCK6
  • OOBMark : SOCK6
  • OptionFlags : SOCK6
  • OtherConfigFlag : IPV6_DEV_RECORD
  • OutDiscards : IPV6STATS
  • OutErrors : ICMPV6STATS
  • OutFragCreates : IPV6STATS
  • OutFragFails : IPV6STATS
  • OutFragOKs : IPV6STATS
  • OutFragReqds : IPV6STATS
  • OutMcastPkts : IPV6STATS
  • OutMsgs : ICMPV6STATS
  • OutNoRoutes : IPV6STATS
  • OutRequests : IPV6STATS
  • OutTransmits : IPV6STATS


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- b -

  • BaseReachableTime : IPV6_DEV_RECORD
  • bData : JUMBO_MEMORYBLOCK
  • bEnable : _IntSetup
  • BIP : SOCK6
  • BlockSize : JUMBO_PITENTRY
  • BlockSizeIdx : JUMBO_PITENTRY
  • BlocksPerPage : JUMBO_PITENTRY
  • BPort : SOCK6


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- c -

  • closeSock : _child
  • ConnAttempt : _tcpstat
  • ConnDrops : _tcpstat
  • Connects : _tcpstat
  • ConnMax : SOCK6
  • ConnTotal : SOCK6
  • CurHopLimit : IPV6_DEV_RECORD


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- d -

  • DADFailures : ICMPV6STATS
  • DADStatus : IPV6_DEV_RECORD
  • DADSuccess : ICMPV6STATS
  • DelAck : _tcpstat
  • Drops : _tcpstat
  • Dstaddr : FRAG6Q
  • dwLingerTime : SOCK6
  • dwTimeout : RT6_ENTRY


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- e -

  • ErrorPending : SOCK6 , _SOCKRAWETH
  • EUI64 : IPV6_DEV_RECORD


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- f -

  • Family : SOCK6 , _SOCKRAWETH
  • fd : SOCK6 , _SOCKRAWETH
  • FIP : SOCK6
  • Flags : RT6_ENTRY , JUMBO_MEMORYBLOCK
  • flags : BIND6_ENTRY
  • FlowLabel : SOCK6
  • FPort : SOCK6
  • Fragments : FRAG6Q


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- h -

  • h_addr : _hostent
  • h_addr_list : _hostent
  • h_addrcnt : _hostent
  • h_addrtype : _hostent
  • h_length : _hostent
  • h_name : _hostent
  • hIF : _SOCKRAWETH , IPV6_DEV_RECORD
  • hIFTx : SOCK6
  • hLinkLocalBind : IPV6_DEV_RECORD
  • hLinkLoopbackRoute : IPV6_DEV_RECORD
  • hLLI6 : RT6_ENTRY
  • HopLimit : SOCK6
  • hRoute6 : SOCK6
  • hRtHost : BIND6_ENTRY
  • hRtNet : BIND6_ENTRY
  • hSBRx : _SOCKRAWETH , SOCK6
  • hSBTx : _SOCKRAWETH , SOCK6
  • hTask : _child
  • hTP : SOCK6


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- i -

  • Id : FRAG6Q
  • IdxFreeCheck : JUMBO_PITENTRY
  • InDelivers : IPV6STATS
  • InErrors : ICMPV6STATS
  • InExtnHdrErrors : IPV6STATS
  • InForwErrors : IPV6STATS
  • InHdrErrors : IPV6STATS
  • InMcastPkts : IPV6STATS
  • InMsgs : ICMPV6STATS
  • InReasmFails : IPV6STATS
  • InReasmOKs : IPV6STATS
  • InReasmReqds : IPV6STATS
  • InReceives : IPV6STATS
  • InTruncatedPkts : IPV6STATS
  • intVectId : _IntSetup
  • InUnknownProtos : IPV6STATS
  • IPAddr : RT6_ENTRY , _lli_info
  • IPAddrForeign : SOCK6PCB
  • IPAddrLocal : SOCK6PCB
  • IPHost : BIND6_ENTRY
  • IPMask : RT6_ENTRY , BIND6_ENTRY
  • IPNet : BIND6_ENTRY
  • IsRouter : LLI6_ENTRY
  • IsStatic : _lli_info


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- p -

  • PageSize : JUMBO_PITENTRY
  • pC : DREC
  • pCallbackArg : _IntSetup
  • pCallbackFxn : _IntSetup
  • pCb : DREC
  • PersistTimeout : _tcpstat
  • pNext : _SOCKRAWETH , _child
  • PortForeign : SOCK6PCB
  • PortLocal : SOCK6PCB
  • pPageStart : JUMBO_PITENTRY
  • pParent : SOCK6
  • pPending : SOCK6
  • pPkt : LLI6_ENTRY
  • pPrev : _SOCKRAWETH , _child
  • pPrevQ : SOCK6
  • pProtNext : SOCK6
  • pProtPrev : SOCK6
  • pReady : SOCK6
  • PreferredLifetime : BIND6_ENTRY
  • Priority : DREC
  • ProtMTU : RT6_ENTRY
  • Protocol : SOCK6 , _SOCKRAWETH
  • pTimestampFxn : _SOCKRAWETH
  • ptr_device : BIND6_ENTRY , RT6_ENTRY , LLI6_ENTRY


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- r -

  • RcvAckByte : _tcpstat
  • RcvAckPack : _tcpstat
  • RcvAckTooMuch : _tcpstat
  • RcvAfterClose : _tcpstat
  • RcvAfterWinByte : _tcpstat
  • RcvAfterWinPack : _tcpstat
  • RcvBadLen : _udpstat
  • RcvBadSum : _tcpstat , _udpstat
  • RcvByte : _tcpstat
  • RcvDrops : _rawethstat
  • RcvDupAck : _tcpstat
  • RcvDupByte : _tcpstat
  • RcvDupPack : _tcpstat
  • RcvFull : _udpstat , _rawstat
  • RcvHdrSize : _tcpstat
  • RcvNoPort : _udpstat
  • RcvNoPortB : _udpstat
  • RcvOOByte : _tcpstat
  • RcvOOPack : _tcpstat
  • RcvPack : _tcpstat
  • RcvPartDupByte : _tcpstat
  • RcvPartDupPack : _tcpstat
  • RcvShort : _udpstat , _tcpstat
  • RcvTotal : _udpstat , _rawethstat , _rawstat , _tcpstat
  • RcvWinProbe : _tcpstat
  • RcvWinUpd : _tcpstat
  • ReachableTime : IPV6_DEV_RECORD
  • RefCount : RT6_ENTRY , LLI6_ENTRY
  • RetransTimer : IPV6_DEV_RECORD
  • RexmtTimeout : _tcpstat
  • RttUpdated : _tcpstat
  • RxBufSize : _SOCKRAWETH , SOCK6
  • RxTimeout : _SOCKRAWETH , SOCK6


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- s -

  • s : DREC , _child
  • ScopeId : SOCK6
  • SegsTimed : _tcpstat
  • SndAcks : _tcpstat
  • SndByte : _tcpstat
  • SndCtrl : _tcpstat
  • SndNoBufs : _tcpstat
  • SndNoPacket : _udpstat , _rawethstat , _rawstat
  • SndPack : _tcpstat
  • SndProbe : _tcpstat
  • SndRexmitByte : _tcpstat
  • SndRexmitPack : _tcpstat
  • SndTotal : _tcpstat , _rawethstat , _rawstat , _udpstat
  • SndUrg : _tcpstat
  • SndWinUp : _tcpstat
  • sockets : _RAWETHSOCK_PCB
  • SockPriority : _SOCKRAWETH , SOCK6
  • SockProt : _SOCKRAWETH , SOCK6
  • SockType : SOCK6 , _SOCKRAWETH
  • SrcAddr : LLI6_ENTRY
  • Srcaddr : FRAG6Q
  • StackSize : DREC
  • State : SOCK6PCB
  • StateFlags : _SOCKRAWETH , SOCK6
  • status : LLI6_ENTRY
  • sysEvtCount : _IntSetup
  • sysEvtId : _IntSetup


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- t -

  • TargetAddr : LLI6_ENTRY
  • TasksSpawned : DREC
  • Timeout : FRAG6Q
  • TimeoutDrops : _tcpstat
  • TxBufSize : _SOCKRAWETH , SOCK6
  • TxTimeout : SOCK6
  • Type : DREC , FRAG6Q


NDK Stack Documentation: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- v -

  • ValidLifetime : BIND6_ENTRY


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- a -

  • Accepts : _tcpstat
  • AllocCount : JUMBO_PITENTRY
  • Argument : DREC


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- k -

  • KeepDrops : _tcpstat
  • KeepProbe : _tcpstat
  • KeepTimeout : _tcpstat


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- l -

  • LastReachTS : LLI6_ENTRY
  • LastSendNS : LLI6_ENTRY
  • LinkMTU : IPV6_DEV_RECORD
  • links : BIND6_ENTRY
  • Links : FRAG6Q
  • links : LLI6_ENTRY
  • Links : _lli_info
  • links : RT6_ENTRY
  • LIP : SOCK6
  • LocalAddress : DREC
  • LocalPort : DREC
  • LocalV6Address : DREC
  • LPort : SOCK6


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- m -

  • MacAddr : LLI6_ENTRY , _lli_info
  • ManagedFlag : IPV6_DEV_RECORD
  • MaxSpawn : DREC


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- n -

  • NetworkAddr : RT6_ENTRY
  • NextHdrOffset : FRAG6Q
  • NextHdrValue : FRAG6Q
  • NextHop : RT6_ENTRY
  • NumProbes : BIND6_ENTRY , LLI6_ENTRY


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- o -

  • OOBData : SOCK6
  • OOBMark : SOCK6
  • OptionFlags : SOCK6
  • OtherConfigFlag : IPV6_DEV_RECORD
  • OutDiscards : IPV6STATS
  • OutErrors : ICMPV6STATS
  • OutFragCreates : IPV6STATS
  • OutFragFails : IPV6STATS
  • OutFragOKs : IPV6STATS
  • OutFragReqds : IPV6STATS
  • OutMcastPkts : IPV6STATS
  • OutMsgs : ICMPV6STATS
  • OutNoRoutes : IPV6STATS
  • OutRequests : IPV6STATS
  • OutTransmits : IPV6STATS


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- b -

  • BaseReachableTime : IPV6_DEV_RECORD
  • bData : JUMBO_MEMORYBLOCK
  • bEnable : _IntSetup
  • BIP : SOCK6
  • BlockSize : JUMBO_PITENTRY
  • BlockSizeIdx : JUMBO_PITENTRY
  • BlocksPerPage : JUMBO_PITENTRY
  • BPort : SOCK6


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- c -

  • closeSock : _child
  • ConnAttempt : _tcpstat
  • ConnDrops : _tcpstat
  • Connects : _tcpstat
  • ConnMax : SOCK6
  • ConnTotal : SOCK6
  • CurHopLimit : IPV6_DEV_RECORD


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- d -

  • DADFailures : ICMPV6STATS
  • DADStatus : IPV6_DEV_RECORD
  • DADSuccess : ICMPV6STATS
  • DelAck : _tcpstat
  • Drops : _tcpstat
  • Dstaddr : FRAG6Q
  • dwLingerTime : SOCK6
  • dwTimeout : RT6_ENTRY


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- e -

  • ErrorPending : SOCK6 , _SOCKRAWETH
  • EUI64 : IPV6_DEV_RECORD


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- f -

  • Family : SOCK6 , _SOCKRAWETH
  • fd : SOCK6 , _SOCKRAWETH
  • FIP : SOCK6
  • Flags : RT6_ENTRY , JUMBO_MEMORYBLOCK
  • flags : BIND6_ENTRY
  • FlowLabel : SOCK6
  • FPort : SOCK6
  • Fragments : FRAG6Q


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- h -

  • h_addr : _hostent
  • h_addr_list : _hostent
  • h_addrcnt : _hostent
  • h_addrtype : _hostent
  • h_length : _hostent
  • h_name : _hostent
  • hIF : _SOCKRAWETH , IPV6_DEV_RECORD
  • hIFTx : SOCK6
  • hLinkLocalBind : IPV6_DEV_RECORD
  • hLinkLoopbackRoute : IPV6_DEV_RECORD
  • hLLI6 : RT6_ENTRY
  • HopLimit : SOCK6
  • hRoute6 : SOCK6
  • hRtHost : BIND6_ENTRY
  • hRtNet : BIND6_ENTRY
  • hSBRx : _SOCKRAWETH , SOCK6
  • hSBTx : _SOCKRAWETH , SOCK6
  • hTask : _child
  • hTP : SOCK6


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- i -

  • Id : FRAG6Q
  • IdxFreeCheck : JUMBO_PITENTRY
  • InDelivers : IPV6STATS
  • InErrors : ICMPV6STATS
  • InExtnHdrErrors : IPV6STATS
  • InForwErrors : IPV6STATS
  • InHdrErrors : IPV6STATS
  • InMcastPkts : IPV6STATS
  • InMsgs : ICMPV6STATS
  • InReasmFails : IPV6STATS
  • InReasmOKs : IPV6STATS
  • InReasmReqds : IPV6STATS
  • InReceives : IPV6STATS
  • InTruncatedPkts : IPV6STATS
  • intVectId : _IntSetup
  • InUnknownProtos : IPV6STATS
  • IPAddr : RT6_ENTRY , _lli_info
  • IPAddrForeign : SOCK6PCB
  • IPAddrLocal : SOCK6PCB
  • IPHost : BIND6_ENTRY
  • IPMask : RT6_ENTRY , BIND6_ENTRY
  • IPNet : BIND6_ENTRY
  • IsRouter : LLI6_ENTRY
  • IsStatic : _lli_info


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- p -

  • PageSize : JUMBO_PITENTRY
  • pC : DREC
  • pCallbackArg : _IntSetup
  • pCallbackFxn : _IntSetup
  • pCb : DREC
  • PersistTimeout : _tcpstat
  • pNext : _SOCKRAWETH , _child
  • PortForeign : SOCK6PCB
  • PortLocal : SOCK6PCB
  • pPageStart : JUMBO_PITENTRY
  • pParent : SOCK6
  • pPending : SOCK6
  • pPkt : LLI6_ENTRY
  • pPrev : _SOCKRAWETH , _child
  • pPrevQ : SOCK6
  • pProtNext : SOCK6
  • pProtPrev : SOCK6
  • pReady : SOCK6
  • PreferredLifetime : BIND6_ENTRY
  • Priority : DREC
  • ProtMTU : RT6_ENTRY
  • Protocol : SOCK6 , _SOCKRAWETH
  • pTimestampFxn : _SOCKRAWETH
  • ptr_device : BIND6_ENTRY , RT6_ENTRY , LLI6_ENTRY


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- r -

  • RcvAckByte : _tcpstat
  • RcvAckPack : _tcpstat
  • RcvAckTooMuch : _tcpstat
  • RcvAfterClose : _tcpstat
  • RcvAfterWinByte : _tcpstat
  • RcvAfterWinPack : _tcpstat
  • RcvBadLen : _udpstat
  • RcvBadSum : _tcpstat , _udpstat
  • RcvByte : _tcpstat
  • RcvDrops : _rawethstat
  • RcvDupAck : _tcpstat
  • RcvDupByte : _tcpstat
  • RcvDupPack : _tcpstat
  • RcvFull : _udpstat , _rawstat
  • RcvHdrSize : _tcpstat
  • RcvNoPort : _udpstat
  • RcvNoPortB : _udpstat
  • RcvOOByte : _tcpstat
  • RcvOOPack : _tcpstat
  • RcvPack : _tcpstat
  • RcvPartDupByte : _tcpstat
  • RcvPartDupPack : _tcpstat
  • RcvShort : _udpstat , _tcpstat
  • RcvTotal : _udpstat , _rawethstat , _rawstat , _tcpstat
  • RcvWinProbe : _tcpstat
  • RcvWinUpd : _tcpstat
  • ReachableTime : IPV6_DEV_RECORD
  • RefCount : RT6_ENTRY , LLI6_ENTRY
  • RetransTimer : IPV6_DEV_RECORD
  • RexmtTimeout : _tcpstat
  • RttUpdated : _tcpstat
  • RxBufSize : _SOCKRAWETH , SOCK6
  • RxTimeout : _SOCKRAWETH , SOCK6


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- s -

  • s : DREC , _child
  • ScopeId : SOCK6
  • SegsTimed : _tcpstat
  • SndAcks : _tcpstat
  • SndByte : _tcpstat
  • SndCtrl : _tcpstat
  • SndNoBufs : _tcpstat
  • SndNoPacket : _udpstat , _rawethstat , _rawstat
  • SndPack : _tcpstat
  • SndProbe : _tcpstat
  • SndRexmitByte : _tcpstat
  • SndRexmitPack : _tcpstat
  • SndTotal : _tcpstat , _rawethstat , _rawstat , _udpstat
  • SndUrg : _tcpstat
  • SndWinUp : _tcpstat
  • sockets : _RAWETHSOCK_PCB
  • SockPriority : _SOCKRAWETH , SOCK6
  • SockProt : _SOCKRAWETH , SOCK6
  • SockType : SOCK6 , _SOCKRAWETH
  • SrcAddr : LLI6_ENTRY
  • Srcaddr : FRAG6Q
  • StackSize : DREC
  • State : SOCK6PCB
  • StateFlags : _SOCKRAWETH , SOCK6
  • status : LLI6_ENTRY
  • sysEvtCount : _IntSetup
  • sysEvtId : _IntSetup


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- t -

  • TargetAddr : LLI6_ENTRY
  • TasksSpawned : DREC
  • Timeout : FRAG6Q
  • TimeoutDrops : _tcpstat
  • TxBufSize : _SOCKRAWETH , SOCK6
  • TxTimeout : SOCK6
  • Type : DREC , FRAG6Q


NDK Stack Documentation: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- v -

  • ValidLifetime : BIND6_ENTRY


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- j -

  • jumbo_mmAlloc() : jumbo_pbm.c
  • jumbo_mmFree() : jumbo_pbm.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- l -

  • list_add() : listlib.c
  • list_cat() : listlib.c
  • list_clean() : listlib.c
  • list_get_head() : listlib.c
  • list_get_next() : listlib.c
  • list_remove() : listlib.c
  • list_remove_node() : listlib.c
  • list_replicate() : listlib.c
  • listen() : socket.c
  • LLI6Free() : lli6.c
  • LLI6GetNetDevice() : lli6.c
  • LLI6IncRefCount() : lli6.c
  • LLI6IsDead() : lli6.c
  • LLI6IsRouter() : lli6.c
  • LLI6IsValid() : lli6.c
  • LLI6Msg() : lli6.c
  • LLI6New() : lli6.c
  • LLI6SetIncomplete() : lli6.c
  • LLI6TxIPPacket() : lli6.c
  • LLI6Update() : lli6.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- m -

  • MLDJoinGroup() : mld.c
  • MLDLeaveGroup() : mld.c
  • MLDTestGroup() : mld.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- n -

  • NIMUAddEthernetHeader() : nimu.c
  • NIMUAddHeader() : nimu.c
  • NIMUCreatePacket() : nimu.c
  • NIMUFindByIndex() : nimu.c
  • NIMUFindByName() : nimu.c
  • NIMUGetRsvdSizeInfo() : nimu.c
  • NIMUInit() : nimu.c
  • NIMUIoctl() : nimu.c
  • NIMUPacketService() : nimu.c
  • NIMUPacketServiceCheck() : nimu.c
  • NIMUReceivePacket() : nimu.c
  • NIMURegister() : nimu.c
  • NIMUSendPacket() : nimu.c
  • NIMUSetRsvdSizeInfo() : nimu.c
  • NIMUShutdown() : nimu.c
  • NIMUUnregister() : nimu.c
  • Nt6TftpRecv() : tftp6.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- a -

  • accept() : socket.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- b -

  • bind() : socket.c
  • Bind6CleanTable() : bind6.c
  • Bind6DADCheck() : bind6.c
  • Bind6FindByHost() : bind6.c
  • Bind6FindByIF() : bind6.c
  • Bind6FindByNet() : bind6.c
  • Bind6Free() : bind6.c
  • Bind6GetGlobalAddress() : bind6.c
  • Bind6GetInterfaceHandle() : bind6.c
  • Bind6GetLifetime() : bind6.c
  • Bind6GetLinkLocalAddress() : bind6.c
  • Bind6GetTable() : bind6.c
  • Bind6IF2IPHost() : bind6.c
  • Bind6Msg() : bind6.c
  • Bind6New() : bind6.c
  • Bind6SetLifetime() : bind6.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- c -

  • CHILD : daemon.c
  • connect() : socket.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- d -

  • Daemon6Free() : daemon.c
  • Daemon6New() : daemon.c
  • DaemonFree() : daemon.c
  • DaemonNew() : daemon.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- g -

  • GetHexValue() : ipv6.c
  • getpeername() : socket.c
  • getsendncbuff() : socket.c
  • getsockname() : socket.c
  • getsockopt() : socket.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- i -

  • ICMPv6Init() : icmpv6.c
  • ICMPv6RecvNA() : icmpv6_ndisc.c
  • ICMPv6RecvNS() : icmpv6_ndisc.c
  • ICMPv6RecvRA() : icmpv6_ndisc.c
  • ICMPv6RecvRedirect() : icmpv6_ndisc.c
  • ICMPv6RecvRS() : icmpv6_ndisc.c
  • ICMPv6RxPacket() : icmpv6in.c
  • ICMPv6SendDstUnreachable() : icmpv6out.c
  • ICMPv6SendNA() : icmpv6_ndisc.c
  • ICMPv6SendNS() : icmpv6_ndisc.c
  • ICMPv6SendParameterProblem() : icmpv6out.c
  • ICMPv6SendRS() : icmpv6_ndisc.c
  • ICMPv6SendTimeExceeded() : icmpv6out.c
  • IGMPJoin() : igmp.c
  • IGMPLeave() : igmp.c
  • IGMPLeaveHostGroup() : igmp.c
  • Interrupt_add() : intmgmt.c
  • Interrupt_delete() : intmgmt.c
  • Interrupt_disable() : intmgmt.c
  • Interrupt_enable() : intmgmt.c
  • IPv6AddAddress() : ipv6.c
  • IPv6CompareAddress() : ipv6.c
  • IPv6DelAddress() : ipv6.c
  • IPv6DisplayIPAddress() : ipv6.c
  • IPv6FragMsg() : ipv6_frag.c
  • IPv6GetRoute() : ipv6out.c
  • IPv6GetSubnetMaskFromBits() : ipv6.c
  • IPv6Init() : ipv6.c
  • IPv6InterfaceDeInit() : ipv6.c
  • IPv6InterfaceInit() : ipv6.c
  • IPv6IPAddressToString() : ipv6.c
  • IPv6IsLinkLocal() : ipv6.c
  • IPv6IsMulticast() : ipv6.c
  • IPv6Layer4ComputeChecksum() : ipv6.c
  • IPv6ParseExtnHeaders() : ipv6_exthdrs.c
  • IPv6ParseFragHdr() : ipv6_frag.c
  • IPv6RxPacket() : ipv6in.c
  • IPv6StringToIPAddress() : ipv6.c
  • IPv6TxFragPacket() : ipv6_frag.c
  • IPv6TxPacket() : ipv6out.c
  • IsICMPv6ErrorPkt() : icmpv6out.c
  • isValidHexDigit() : ipv6.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- p -

  • pipe() : socket.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- r -

  • Raw6Input() : raw6.c
  • Raw6Output() : raw6.c
  • RawEthRxPacket() : raweth.c
  • RawEthSockCheck() : rawethsock.c
  • RawEthSockClose() : rawethsock.c
  • RawEthSockCreatePacket() : rawethsock.c
  • RawEthSockGet() : rawethsock.c
  • RawEthSockNew() : rawethsock.c
  • RawEthSockNotify() : rawethsock.c
  • RawEthSockRecvNC() : rawethsock.c
  • RawEthSockSend() : rawethsock.c
  • RawEthSockSendNC() : rawethsock.c
  • RawEthSockSet() : rawethsock.c
  • RawEthSockShutdown() : rawethsock.c
  • RawEthSockStatus() : rawethsock.c
  • RawEthTxPacket() : raweth.c
  • RawEthTxPacketNC() : raweth.c
  • recv() : socket.c
  • recvfrom() : socket.c
  • recvnc() : socket.c
  • recvncfree() : socket.c
  • recvncfrom() : socket.c
  • Route6Msg() : route6.c
  • Rt6CleanTable() : route6.c
  • Rt6Create() : route6.c
  • Rt6Find() : route6.c
  • Rt6FindDefaultRouter() : route6.c
  • Rt6FlushInterfaceRoutes() : route6.c
  • Rt6Free() : route6.c
  • Rt6GetIF() : route6.c
  • Rt6GetLLI() : route6.c
  • Rt6GetMTU() : route6.c
  • Rt6GetNetworkAddr() : route6.c
  • Rt6GetTable() : route6.c
  • Rt6IncRefCount() : route6.c
  • Rt6IsDefaultRoute() : route6.c
  • Rt6IsLocalRoute() : route6.c
  • Rt6Modify() : route6.c
  • Rt6Update() : route6.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- s -

  • SB6Flush() : sb6.c
  • SB6Free() : sb6.c
  • SB6New() : sb6.c
  • SB6Read() : sb6.c
  • SB6SetMax() : sb6.c
  • SB6Write() : sb6.c
  • send() : socket.c
  • sendnc() : socket.c
  • sendncfree() : socket.c
  • sendto() : socket.c
  • setsockopt() : socket.c
  • shutdown() : socket.c
  • Sock6Accept() : sock6.c
  • Sock6Bind() : sock6.c
  • Sock6Check() : sock6.c
  • Sock6CleanPcb() : sock6pcb.c
  • Sock6Close() : sock6.c
  • Sock6Connect() : sock6.c
  • Sock6CreatePacket() : sock6int.c
  • Sock6Disconnect() : sock6.c
  • Sock6Get() : sock6.c
  • Sock6GetName() : sock6.c
  • Sock6IntAbort() : sock6.c
  • Sock6Listen() : sock6.c
  • Sock6New() : sock6.c
  • Sock6Notify() : sock6int.c
  • Sock6PcbAttach() : sock6pcb.c
  • Sock6PcbBind() : sock6pcb.c
  • Sock6PcbCleanup() : sock6pcb.c
  • Sock6PcbConnect() : sock6pcb.c
  • Sock6PcbDetach() : sock6pcb.c
  • Sock6PcbResolve() : sock6pcb.c
  • Sock6PcbResolveChain() : sock6pcb.c
  • Sock6PcbRtChange() : sock6pcb.c
  • Sock6PrAttach() : sock6prot.c
  • Sock6PrCtlError() : sock6prot.c
  • Sock6PrDetach() : sock6prot.c
  • Sock6Recv() : sock6.c
  • Sock6Send() : sock6.c
  • Sock6Set() : sock6.c
  • Sock6Shutdown() : sock6.c
  • Sock6SpawnAbort() : sock6int.c
  • Sock6Status() : sock6.c
  • Sock6ValidateRoute() : sock6int.c
  • SockCleanPcb() : sockpcb.c
  • socket() : socket.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- t -

  • TCP6Close() : tcp6prot.c
  • TCP6Drop() : tcp6prot.c
  • TCP6GenPacket() : tcp6out.c
  • TCP6Input() : tcp6in.c
  • TCP6Output() : tcp6out.c
  • TCP6PrAttach() : tcp6prot.c
  • TCP6PrConnect() : tcp6prot.c
  • TCP6PrCtlError() : tcp6prot.c
  • TCP6PrDetach() : tcp6prot.c
  • TCP6PrDisconnect() : tcp6prot.c
  • TCP6PrGetOption() : tcp6prot.c
  • TCP6PrGetState() : tcp6prot.c
  • TCP6PrInherit() : tcp6prot.c
  • TCP6PrListen() : tcp6prot.c
  • TCP6PrRecv() : tcp6prot.c
  • TCP6PrSend() : tcp6prot.c
  • TCP6PrSendOOB() : tcp6prot.c
  • TCP6PrSetOption() : tcp6prot.c
  • TCP6TimeoutAdd() : tcp6.c
  • TCP6TimeoutCheck() : tcp6.c
  • TCP6TimeoutRemove() : tcp6.c
  • TCP6ValidateMetrics() : tcp6prot.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- u -

  • Udp6Input() : udp6.c
  • Udp6Output() : udp6.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- v -

  • VLANAddDevice() : vlan.c
  • VLANDeinit() : vlan.c
  • VLANDelDevice() : vlan.c
  • VLANInit() : vlan.c
  • VLANReceivePacket() : vlan.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

- _ -

  • _jumbo_mmCheck() : jumbo_pbm.c
  • _jumbo_mmInit() : jumbo_pbm.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

- j -

  • jumbo_mmAlloc() : jumbo_pbm.c
  • jumbo_mmFree() : jumbo_pbm.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

- l -

  • list_add() : listlib.c
  • list_cat() : listlib.c
  • list_clean() : listlib.c
  • list_get_head() : listlib.c
  • list_get_next() : listlib.c
  • list_remove() : listlib.c
  • list_remove_node() : listlib.c
  • list_replicate() : listlib.c
  • listen() : socket.c
  • LLI6Free() : lli6.c
  • LLI6GetNetDevice() : lli6.c
  • LLI6IncRefCount() : lli6.c
  • LLI6IsDead() : lli6.c
  • LLI6IsRouter() : lli6.c
  • LLI6IsValid() : lli6.c
  • LLI6Msg() : lli6.c
  • LLI6New() : lli6.c
  • LLI6SetIncomplete() : lli6.c
  • LLI6TxIPPacket() : lli6.c
  • LLI6Update() : lli6.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

- m -

  • MLDJoinGroup() : mld.c
  • MLDLeaveGroup() : mld.c
  • MLDTestGroup() : mld.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

- n -

  • NIMUAddEthernetHeader() : nimu.c
  • NIMUAddHeader() : nimu.c
  • NIMUCreatePacket() : nimu.c
  • NIMUFindByIndex() : nimu.c
  • NIMUFindByName() : nimu.c
  • NIMUGetRsvdSizeInfo() : nimu.c
  • NIMUInit() : nimu.c
  • NIMUIoctl() : nimu.c
  • NIMUPacketService() : nimu.c
  • NIMUPacketServiceCheck() : nimu.c
  • NIMUReceivePacket() : nimu.c
  • NIMURegister() : nimu.c
  • NIMUSendPacket() : nimu.c
  • NIMUSetRsvdSizeInfo() : nimu.c
  • NIMUShutdown() : nimu.c
  • NIMUUnregister() : nimu.c
  • Nt6TftpRecv() : tftp6.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

- a -

  • accept() : socket.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

- b -

  • bind() : socket.c
  • Bind6CleanTable() : bind6.c
  • Bind6DADCheck() : bind6.c
  • Bind6FindByHost() : bind6.c
  • Bind6FindByIF() : bind6.c
  • Bind6FindByNet() : bind6.c
  • Bind6Free() : bind6.c
  • Bind6GetGlobalAddress() : bind6.c
  • Bind6GetInterfaceHandle() : bind6.c
  • Bind6GetLifetime() : bind6.c
  • Bind6GetLinkLocalAddress() : bind6.c
  • Bind6GetTable() : bind6.c
  • Bind6IF2IPHost() : bind6.c
  • Bind6Msg() : bind6.c
  • Bind6New() : bind6.c
  • Bind6SetLifetime() : bind6.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

- c -

  • connect() : socket.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

- d -

  • Daemon6Free() : daemon.c
  • Daemon6New() : daemon.c
  • DaemonFree() : daemon.c
  • DaemonNew() : daemon.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

- g -

  • GetHexValue() : ipv6.c
  • getpeername() : socket.c
  • getsendncbuff() : socket.c
  • getsockname() : socket.c
  • getsockopt() : socket.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

- i -

  • ICMPv6Init() : icmpv6.c
  • ICMPv6RecvNA() : icmpv6_ndisc.c
  • ICMPv6RecvNS() : icmpv6_ndisc.c
  • ICMPv6RecvRA() : icmpv6_ndisc.c
  • ICMPv6RecvRedirect() : icmpv6_ndisc.c
  • ICMPv6RecvRS() : icmpv6_ndisc.c
  • ICMPv6RxPacket() : icmpv6in.c
  • ICMPv6SendDstUnreachable() : icmpv6out.c
  • ICMPv6SendNA() : icmpv6_ndisc.c
  • ICMPv6SendNS() : icmpv6_ndisc.c
  • ICMPv6SendParameterProblem() : icmpv6out.c
  • ICMPv6SendRS() : icmpv6_ndisc.c
  • ICMPv6SendTimeExceeded() : icmpv6out.c
  • IGMPJoin() : igmp.c
  • IGMPLeave() : igmp.c
  • IGMPLeaveHostGroup() : igmp.c
  • Interrupt_add() : intmgmt.c
  • Interrupt_delete() : intmgmt.c
  • Interrupt_disable() : intmgmt.c
  • Interrupt_enable() : intmgmt.c
  • IPv6AddAddress() : ipv6.c
  • IPv6CompareAddress() : ipv6.c
  • IPv6DelAddress() : ipv6.c
  • IPv6DisplayIPAddress() : ipv6.c
  • IPv6FragMsg() : ipv6_frag.c
  • IPv6GetRoute() : ipv6out.c
  • IPv6GetSubnetMaskFromBits() : ipv6.c
  • IPv6Init() : ipv6.c
  • IPv6InterfaceDeInit() : ipv6.c
  • IPv6InterfaceInit() : ipv6.c
  • IPv6IPAddressToString() : ipv6.c
  • IPv6IsLinkLocal() : ipv6.c
  • IPv6IsMulticast() : ipv6.c
  • IPv6Layer4ComputeChecksum() : ipv6.c
  • IPv6ParseExtnHeaders() : ipv6_exthdrs.c
  • IPv6ParseFragHdr() : ipv6_frag.c
  • IPv6RxPacket() : ipv6in.c
  • IPv6StringToIPAddress() : ipv6.c
  • IPv6TxFragPacket() : ipv6_frag.c
  • IPv6TxPacket() : ipv6out.c
  • IsICMPv6ErrorPkt() : icmpv6out.c
  • isValidHexDigit() : ipv6.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

- p -

  • pipe() : socket.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

- r -

  • Raw6Input() : raw6.c
  • Raw6Output() : raw6.c
  • RawEthRxPacket() : raweth.c
  • RawEthSockCheck() : rawethsock.c
  • RawEthSockClose() : rawethsock.c
  • RawEthSockCreatePacket() : rawethsock.c
  • RawEthSockGet() : rawethsock.c
  • RawEthSockNew() : rawethsock.c
  • RawEthSockNotify() : rawethsock.c
  • RawEthSockRecvNC() : rawethsock.c
  • RawEthSockSend() : rawethsock.c
  • RawEthSockSendNC() : rawethsock.c
  • RawEthSockSet() : rawethsock.c
  • RawEthSockShutdown() : rawethsock.c
  • RawEthSockStatus() : rawethsock.c
  • RawEthTxPacket() : raweth.c
  • RawEthTxPacketNC() : raweth.c
  • recv() : socket.c
  • recvfrom() : socket.c
  • recvnc() : socket.c
  • recvncfree() : socket.c
  • recvncfrom() : socket.c
  • Route6Msg() : route6.c
  • Rt6CleanTable() : route6.c
  • Rt6Create() : route6.c
  • Rt6Find() : route6.c
  • Rt6FindDefaultRouter() : route6.c
  • Rt6FlushInterfaceRoutes() : route6.c
  • Rt6Free() : route6.c
  • Rt6GetIF() : route6.c
  • Rt6GetLLI() : route6.c
  • Rt6GetMTU() : route6.c
  • Rt6GetNetworkAddr() : route6.c
  • Rt6GetTable() : route6.c
  • Rt6IncRefCount() : route6.c
  • Rt6IsDefaultRoute() : route6.c
  • Rt6IsLocalRoute() : route6.c
  • Rt6Modify() : route6.c
  • Rt6Update() : route6.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

- s -

  • SB6Flush() : sb6.c
  • SB6Free() : sb6.c
  • SB6New() : sb6.c
  • SB6Read() : sb6.c
  • SB6SetMax() : sb6.c
  • SB6Write() : sb6.c
  • send() : socket.c
  • sendnc() : socket.c
  • sendncfree() : socket.c
  • sendto() : socket.c
  • setsockopt() : socket.c
  • shutdown() : socket.c
  • Sock6Accept() : sock6.c
  • Sock6Bind() : sock6.c
  • Sock6Check() : sock6.c
  • Sock6CleanPcb() : sock6pcb.c
  • Sock6Close() : sock6.c
  • Sock6Connect() : sock6.c
  • Sock6CreatePacket() : sock6int.c
  • Sock6Disconnect() : sock6.c
  • Sock6Get() : sock6.c
  • Sock6GetName() : sock6.c
  • Sock6IntAbort() : sock6.c
  • Sock6Listen() : sock6.c
  • Sock6New() : sock6.c
  • Sock6Notify() : sock6int.c
  • Sock6PcbAttach() : sock6pcb.c
  • Sock6PcbBind() : sock6pcb.c
  • Sock6PcbCleanup() : sock6pcb.c
  • Sock6PcbConnect() : sock6pcb.c
  • Sock6PcbDetach() : sock6pcb.c
  • Sock6PcbResolve() : sock6pcb.c
  • Sock6PcbResolveChain() : sock6pcb.c
  • Sock6PcbRtChange() : sock6pcb.c
  • Sock6PrAttach() : sock6prot.c
  • Sock6PrCtlError() : sock6prot.c
  • Sock6PrDetach() : sock6prot.c
  • Sock6Recv() : sock6.c
  • Sock6Send() : sock6.c
  • Sock6Set() : sock6.c
  • Sock6Shutdown() : sock6.c
  • Sock6SpawnAbort() : sock6int.c
  • Sock6Status() : sock6.c
  • Sock6ValidateRoute() : sock6int.c
  • SockCleanPcb() : sockpcb.c
  • socket() : socket.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

- t -

  • TCP6Close() : tcp6prot.c
  • TCP6Drop() : tcp6prot.c
  • TCP6GenPacket() : tcp6out.c
  • TCP6Input() : tcp6in.c
  • TCP6Output() : tcp6out.c
  • TCP6PrAttach() : tcp6prot.c
  • TCP6PrConnect() : tcp6prot.c
  • TCP6PrCtlError() : tcp6prot.c
  • TCP6PrDetach() : tcp6prot.c
  • TCP6PrDisconnect() : tcp6prot.c
  • TCP6PrGetOption() : tcp6prot.c
  • TCP6PrGetState() : tcp6prot.c
  • TCP6PrInherit() : tcp6prot.c
  • TCP6PrListen() : tcp6prot.c
  • TCP6PrRecv() : tcp6prot.c
  • TCP6PrSend() : tcp6prot.c
  • TCP6PrSendOOB() : tcp6prot.c
  • TCP6PrSetOption() : tcp6prot.c
  • TCP6TimeoutAdd() : tcp6.c
  • TCP6TimeoutCheck() : tcp6.c
  • TCP6TimeoutRemove() : tcp6.c
  • TCP6ValidateMetrics() : tcp6prot.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

- u -

  • Udp6Input() : udp6.c
  • Udp6Output() : udp6.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs
  • _
  • a
  • b
  • c
  • d
  • g
  • i
  • j
  • l
  • m
  • n
  • p
  • r
  • s
  • t
  • u
  • v

- v -

  • VLANAddDevice() : vlan.c
  • VLANDeinit() : vlan.c
  • VLANDelDevice() : vlan.c
  • VLANInit() : vlan.c
  • VLANReceivePacket() : vlan.c


NDK Stack Documentation: Data Fields

  • All
  • Functions
  • Typedefs

  • CHILD : daemon.c


NDK Stack Documentation: Graph Legend

Graph Legend

This page explains how to interpret the graphs that are generated by doxygen.

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };

/*! Truncated class, inheritance relation is hidden */
class Truncated : public Invisible { };

/* Class not documented with doxygen comments */
class Undocumented { };

/*! Class that is inherited using public inheritance */
class PublicBase : public Truncated { };

/*! A template class */
template<class T> class Templ { };

/*! Class that is inherited using protected inheritance */
class ProtectedBase { };

/*! Class that is inherited using private inheritance */
class PrivateBase { };

/*! Class that is used by the Inherited class */
class Used { };

/*! Super class that inherits a number of other classes */
class Inherited : public PublicBase,
                  protected ProtectedBase,
                  private PrivateBase,
                  public Undocumented
                  public Templ<int>
{
  private:
    Used *m_usedClass;
};
If the MAX_DOT_GRAPH_HEIGHT tag in the configuration file is set to 240 this will result in the following graph:

The boxes in the above graph have the following meaning:

  • A filled black box represents the struct or class for which the graph is generated.
  • A box with a black border denotes a documented struct or class.
  • A box with a grey border denotes an undocumented struct or class.
  • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
The arrows have the following meaning:
  • A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • A dark green arrow is used for protected inheritance.
  • A dark red arrow is used for private inheritance.
  • A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.


NDK Stack Documentation: Main Page

NDK Stack Documentation Documentation

Copyright 2009, Texas Instruments Incorporated