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.


Copyright 2009, Texas Instruments Incorporated