Versions in this module Expand all Collapse all v0 v0.9.1 May 20, 2022 Changes in this version + func CheckHopCount(_ *Pipeline, descriptor BundleDescriptor) (err error) + func CheckLifetime(_ *Pipeline, descriptor BundleDescriptor) (err error) + func CheckRouting(pipeline *Pipeline, descriptor BundleDescriptor) (err error) + type AgentManager struct + func NewAgentManager(core *Core) (manager *AgentManager) + func (manager *AgentManager) Close() error + func (manager *AgentManager) Deliver(descriptor BundleDescriptor) error + func (manager *AgentManager) HasEndpoint(eid bpv7.EndpointID) bool + func (manager *AgentManager) Register(appAgent agent.ApplicationAgent) + type Algorithm interface + DispatchingAllowed func(descriptor BundleDescriptor) bool + NotifyNewBundle func(descriptor BundleDescriptor) + ReportFailure func(descriptor BundleDescriptor, sender cla.ConvergenceSender) + ReportPeerAppeared func(peer cla.Convergence) + ReportPeerDisappeared func(peer cla.Convergence) + SenderForBundle func(descriptor BundleDescriptor) (sender []cla.ConvergenceSender, delete bool) + type BinarySpray struct + func NewBinarySpray(c *Core, config SprayConfig) *BinarySpray + func (_ *BinarySpray) DispatchingAllowed(_ BundleDescriptor) bool + func (_ *BinarySpray) ReportPeerAppeared(_ cla.Convergence) + func (_ *BinarySpray) ReportPeerDisappeared(_ cla.Convergence) + func (bs *BinarySpray) GarbageCollect() + func (bs *BinarySpray) NotifyNewBundle(bp BundleDescriptor) + func (bs *BinarySpray) ReportFailure(bp BundleDescriptor, sender cla.ConvergenceSender) + func (bs *BinarySpray) SenderForBundle(bp BundleDescriptor) (css []cla.ConvergenceSender, del bool) + type BundleDescriptor struct + Constraints map[Constraint]bool + Id bpv7.BundleID + Receiver bpv7.EndpointID + Tags map[Tag]struct{} + Timestamp time.Time + func NewBundleDescriptor(bid bpv7.BundleID, store *storage.Store) BundleDescriptor + func NewBundleDescriptorFromBundle(b bpv7.Bundle, store *storage.Store) BundleDescriptor + func (descriptor *BundleDescriptor) AddConstraint(c Constraint) + func (descriptor *BundleDescriptor) AddTag(tag Tag) + func (descriptor *BundleDescriptor) Bundle() (*bpv7.Bundle, error) + func (descriptor *BundleDescriptor) HasTag(tag Tag) bool + func (descriptor *BundleDescriptor) MustBundle() *bpv7.Bundle + func (descriptor *BundleDescriptor) PurgeConstraints() + func (descriptor *BundleDescriptor) RemoveConstraint(c Constraint) + func (descriptor *BundleDescriptor) RemoveTag(tag Tag) + func (descriptor *BundleDescriptor) UpdateBundleAge() (uint64, error) + func (descriptor BundleDescriptor) HasConstraint(c Constraint) bool + func (descriptor BundleDescriptor) HasConstraints() bool + func (descriptor BundleDescriptor) HasReceiver() bool + func (descriptor BundleDescriptor) ID() bpv7.BundleID + func (descriptor BundleDescriptor) String() string + func (descriptor BundleDescriptor) Sync() error + type CheckFunc func(*Pipeline, BundleDescriptor) error + type Constraint int + const Contraindicated + const DispatchPending + const ForwardPending + const LocalEndpoint + const ReassemblyPending_ + func (c Constraint) String() string + type Core struct + InspectAllBundles bool + NodeId bpv7.EndpointID + func NewCore(storePath string, nodeId bpv7.EndpointID, inspectAllBundles bool, ...) (*Core, error) + func (c *Core) Close() + func (c *Core) HasEndpoint(endpoint bpv7.EndpointID) bool + func (c *Core) RegisterApplicationAgent(app agent.ApplicationAgent) + func (c *Core) RegisterCLA(conv cla.Convergable, claType cla.CLAType, eid bpv7.EndpointID) + func (c *Core) RegisterConvergable(conv cla.Convergable) + func (c *Core) RegisteredCLAs(claType cla.CLAType) []bpv7.EndpointID + func (c *Core) SendBundle(bndl *bpv7.Bundle) + func (c *Core) SendStatusReport(descriptor BundleDescriptor, status bpv7.StatusInformationPos, ...) + func (c *Core) SetRoutingAlgorithm(routing Algorithm) + type Cron struct + func NewCron() *Cron + func (cron *Cron) Register(name string, task func(), interval time.Duration) error + func (cron *Cron) Stop() + func (cron *Cron) Unregister(name string) + type DTLSR struct + func NewDTLSR(c *Core, config DTLSRConfig) *DTLSR + func (_ *DTLSR) DispatchingAllowed(_ BundleDescriptor) bool + func (_ *DTLSR) ReportFailure(_ BundleDescriptor, _ cla.ConvergenceSender) + func (dtlsr *DTLSR) NotifyNewBundle(bp BundleDescriptor) + func (dtlsr *DTLSR) ReportPeerAppeared(peer cla.Convergence) + func (dtlsr *DTLSR) ReportPeerDisappeared(peer cla.Convergence) + func (dtlsr *DTLSR) SenderForBundle(bp BundleDescriptor) (sender []cla.ConvergenceSender, delete bool) + type DTLSRConfig struct + BroadcastTime string + PurgeTime string + RecomputeTime string + type EpidemicRouting struct + func NewEpidemicRouting(c *Core) *EpidemicRouting + func (_ *EpidemicRouting) ReportPeerAppeared(_ cla.Convergence) + func (_ *EpidemicRouting) ReportPeerDisappeared(_ cla.Convergence) + func (_ *EpidemicRouting) String() string + func (er *EpidemicRouting) DispatchingAllowed(bp BundleDescriptor) bool + func (er *EpidemicRouting) NotifyNewBundle(bp BundleDescriptor) + func (er *EpidemicRouting) ReportFailure(bp BundleDescriptor, sender cla.ConvergenceSender) + func (er *EpidemicRouting) SenderForBundle(bp BundleDescriptor) (css []cla.ConvergenceSender, del bool) + type IdKeeper struct + func NewIdKeeper() IdKeeper + type Pipeline struct + AgentManager AgentManager + Algorithm Algorithm + Checks []CheckFunc + NodeId bpv7.EndpointID + SendReports map[bpv7.StatusInformationPos]bool + Store *storage.Store + func (pipeline *Pipeline) Start() + type Prophet struct + func NewProphet(c *Core, config ProphetConfig) *Prophet + func (prophet *Prophet) DispatchingAllowed(_ BundleDescriptor) bool + func (prophet *Prophet) NotifyNewBundle(bp BundleDescriptor) + func (prophet *Prophet) ReportFailure(bp BundleDescriptor, sender cla.ConvergenceSender) + func (prophet *Prophet) ReportPeerAppeared(peer cla.Convergence) + func (prophet *Prophet) ReportPeerDisappeared(peer cla.Convergence) + func (prophet *Prophet) SenderForBundle(bp BundleDescriptor) (sender []cla.ConvergenceSender, delete bool) + type ProphetConfig struct + AgeInterval string + Beta float64 + Gamma float64 + PInit float64 + type RoutingConf struct + Algorithm string + DTLSRConf DTLSRConfig + ProphetConf ProphetConfig + SensorMuleConf SensorNetworkMuleConfig + SprayConf SprayConfig + func (routingConf RoutingConf) RoutingAlgorithm(c *Core) (algo Algorithm, err error) + type SensorNetworkMuleConfig struct + Algorithm *RoutingConf + SensorNodeRegex string + type SensorNetworkMuleRouting struct + func NewSensorNetworkMuleRouting(algorithm Algorithm, sensorNode *regexp.Regexp) *SensorNetworkMuleRouting + func (snm *SensorNetworkMuleRouting) DispatchingAllowed(bp BundleDescriptor) bool + func (snm *SensorNetworkMuleRouting) NotifyNewBundle(bp BundleDescriptor) + func (snm *SensorNetworkMuleRouting) ReportFailure(bp BundleDescriptor, sender cla.ConvergenceSender) + func (snm *SensorNetworkMuleRouting) ReportPeerAppeared(peer cla.Convergence) + func (snm *SensorNetworkMuleRouting) ReportPeerDisappeared(peer cla.Convergence) + func (snm *SensorNetworkMuleRouting) SenderForBundle(bp BundleDescriptor) (sender []cla.ConvergenceSender, delete bool) + func (snm *SensorNetworkMuleRouting) String() string + type SprayAndWait struct + func NewSprayAndWait(c *Core, config SprayConfig) *SprayAndWait + func (_ *SprayAndWait) DispatchingAllowed(_ BundleDescriptor) bool + func (_ *SprayAndWait) ReportPeerAppeared(_ cla.Convergence) + func (_ *SprayAndWait) ReportPeerDisappeared(_ cla.Convergence) + func (sw *SprayAndWait) GarbageCollect() + func (sw *SprayAndWait) NotifyNewBundle(bp BundleDescriptor) + func (sw *SprayAndWait) ReportFailure(bp BundleDescriptor, sender cla.ConvergenceSender) + func (sw *SprayAndWait) SenderForBundle(bp BundleDescriptor) (css []cla.ConvergenceSender, del bool) + type SprayConfig struct + Multiplicity uint64 + type Tag uint64 + const Delivered + const Faulty + const Incoming + const NoLocalAgent + const Outgoing + const ReassemblyPending