Hybrid ICN (hICN) plugin  v21.06-rc0-4-g18fa668
Typedefs | Functions
fibEntry.h File Reference

A forwarding entry in the FIB table. More...

#include <hicn/core/name.h>
#include <hicn/strategies/strategyImpl.h>
Include dependency graph for fibEntry.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef struct fib_entry FibEntry
 

Functions

FibEntry * fibEntry_Create (Name *name, strategy_type fwdStrategy)
 
void fibEntry_Release (FibEntry **fibEntryPtr)
 
FibEntry * fibEntry_Acquire (const FibEntry *fibEntry)
 
void fibEntry_SetStrategy (FibEntry *fibEntry, strategy_type strategy, unsigned related_prefixes_len, Name **related_prefixes)
 
void fibEntry_AddNexthop (FibEntry *fibEntry, unsigned connectionId)
 
void fibEntry_RemoveNexthopByConnectionId (FibEntry *fibEntry, unsigned connectionId)
 
size_t fibEntry_NexthopCount (const FibEntry *fibEntry)
 
const NumberSet * fibEntry_GetNexthops (const FibEntry *fibEntry)
 
void fibEntry_ReceiveObjectMessage (const FibEntry *fibEntry, const NumberSet *egressId, const Message *objectMessage, Ticks pitEntryCreation, Ticks objReception)
 
void fibEntry_OnTimeout (const FibEntry *fibEntry, const NumberSet *egressId)
 
const NumberSet * fibEntry_GetNexthopsFromForwardingStrategy (const FibEntry *fibEntry, const Message *interestMessage)
 
strategy_type fibEntry_GetFwdStrategyType (const FibEntry *fibEntry)
 
StrategyImplfibEntry_GetFwdStrategy (const FibEntry *fibEntry)
 
Name * fibEntry_GetPrefix (const FibEntry *fibEntry)
 

Detailed Description

A forwarding entry in the FIB table.

A Forwarding Information Base (FIB) entry (FibEntry) is a set of nexthops for a name. It also indicates the forwarding strategy.

Each nexthop contains the ConnectionId assocaited with it. This could be something specific like a MAC address or point-to-point tunnel. Or, it could be something general like a MAC group address or ip multicast overlay.

See strategy.h for a description of forwarding strategies. In short, a strategy is the algorithm used to select one or more nexthops from the set of available nexthops.

Each nexthop also contains a void* to a forwarding strategy data container. This allows a strategy to keep proprietary information about each nexthop.

Function Documentation

◆ fibEntry_Acquire()

FibEntry* fibEntry_Acquire ( const FibEntry *  fibEntry)

Returns a reference counted copy of the fib entry

The reference count is increased by one. The returned value must be released via fibEnty_Release().

Parameters
[in]fibEntryAn allocated FibEntry
Returns
non-null A reference counted copy of the fibEntry

◆ fibEntry_GetNexthops()

const NumberSet* fibEntry_GetNexthops ( const FibEntry *  fibEntry)

@function fibEntry_GetNexthops @abstract Returns the nexthop set of the FIB entry. You must Acquire if it will be saved. @discussion Returns the next hop set for the FIB entry.

◆ fibEntry_GetPrefix()

Name* fibEntry_GetPrefix ( const FibEntry *  fibEntry)

@function fibEntry_GetPrefix @abstract Returns a copy of the prefix.

Returns
A reference counted copy that you must destroy

◆ fibEntry_Release()

void fibEntry_Release ( FibEntry **  fibEntryPtr)

Decrements the reference count by one, and destroys the memory after last release