Documentation ¶
Index ¶
- type Fib
- type FibEntry
- type NeighborState
- type NeighborTable
- type PrefixEntry
- type PrefixTable
- type PrefixTableRouter
- type Rib
- func (r *Rib) Advert() *tlv.Advertisement
- func (r *Rib) DirtyResetNextHop(nextHop enc.Name)
- func (r *Rib) Entries() []*RibEntry
- func (rib *Rib) GetFibEntries(nt *NeighborTable, router uint64) []FibEntry
- func (r *Rib) Has(destName enc.Name) bool
- func (r *Rib) Print()
- func (r *Rib) Prune() bool
- func (r *Rib) RemoveNextHop(nextHop enc.Name) bool
- func (r *Rib) Set(destName enc.Name, nextHop enc.Name, cost uint64) bool
- type RibEntry
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Fib ¶
type Fib struct {
// contains filtered or unexported fields
}
func (*Fib) RemoveUnmarked ¶
func (fib *Fib) RemoveUnmarked()
type NeighborState ¶
type NeighborState struct { // neighbor name Name enc.Name // advertisement sequence number for neighbor AdvertSeq uint64 // most recent advertisement Advert *tlv.Advertisement // contains filtered or unexported fields }
func (*NeighborState) IsDead ¶
func (ns *NeighborState) IsDead() bool
func (*NeighborState) RecvPing ¶
func (ns *NeighborState) RecvPing(faceId uint64) error
Call this when a ping is received from a face. This will automatically register the face route with the neighbor and update the last seen time for the neighbor.
type NeighborTable ¶
type NeighborTable struct {
// contains filtered or unexported fields
}
func NewNeighborTable ¶
func NewNeighborTable(config *config.Config, nfdc *nfdc.NfdMgmtThread) *NeighborTable
func (*NeighborTable) Add ¶
func (nt *NeighborTable) Add(name enc.Name) *NeighborState
func (*NeighborTable) Get ¶
func (nt *NeighborTable) Get(name enc.Name) *NeighborState
func (*NeighborTable) GetAll ¶
func (nt *NeighborTable) GetAll() []*NeighborState
func (*NeighborTable) GetH ¶
func (nt *NeighborTable) GetH(nameHash uint64) *NeighborState
func (*NeighborTable) Remove ¶
func (nt *NeighborTable) Remove(name enc.Name)
type PrefixEntry ¶
type PrefixTable ¶
type PrefixTable struct {
// contains filtered or unexported fields
}
func NewPrefixTable ¶
func (*PrefixTable) Announce ¶
func (pt *PrefixTable) Announce(name enc.Name)
func (*PrefixTable) Apply ¶
func (pt *PrefixTable) Apply(ops *tlv.PrefixOpList) (dirty bool)
Applies ops from a list. Returns if dirty.
func (*PrefixTable) GetRouter ¶
func (pt *PrefixTable) GetRouter(name enc.Name) *PrefixTableRouter
func (*PrefixTable) OnDataInterest ¶
func (pt *PrefixTable) OnDataInterest(args ndn.InterestHandlerArgs)
Received prefix data Interest
func (*PrefixTable) Withdraw ¶
func (pt *PrefixTable) Withdraw(name enc.Name)
type PrefixTableRouter ¶
type Rib ¶
type Rib struct {
// contains filtered or unexported fields
}
Routing Information Base (RIB)
func (*Rib) Advert ¶
func (r *Rib) Advert() *tlv.Advertisement
Get all advertisement entries in the RIB.
func (*Rib) DirtyResetNextHop ¶
Resets all entries for a given next hop to infinity without refreshing any entry. This is specifically intended for the RIB update algorithm to avoid unnecessary changes.
func (*Rib) GetFibEntries ¶
func (rib *Rib) GetFibEntries(nt *NeighborTable, router uint64) []FibEntry
Get the FIB entry for a name prefix. router should be hash of the router name.
func (*Rib) Prune ¶
Whenever the RIB is changed, this must be called manually to remove unreachable destinations. Returns true if the Advertisement might change.
func (*Rib) RemoveNextHop ¶
Remove all entries with a given next hop. Returns true if the Advertisement might change.