Versions in this module Expand all Collapse all v0 v0.12.0 Oct 10, 2024 Changes in this version type BRInfo + IfIDs []iface.ID type IFInfo + RemoteIfID iface.ID type Loader + func (l *Loader) IfIDs() []uint16 + func (l *Loader) PortRange() (uint16, uint16) type RWTopology + DispatchedPortEnd uint16 + DispatchedPortStart uint16 type Topology + IfIDs func() []iface.ID + PortRange func() (uint16, uint16) v0.11.0 May 14, 2024 v0.10.0 Dec 21, 2023 v0.9.1 Oct 30, 2023 v0.9.0 Oct 16, 2023 Changes in this version type RWTopology + IsCore bool v0.8.0 Jun 14, 2022 Changes in this version + const EndhostPort + var ErrAddressNotFound = serrors.New("address not found") + func Digest(t interface{}) ([]byte, error) + type BFD struct + DesiredMinTxInterval time.Duration + DetectMult uint8 + Disable bool + RequiredMinRxInterval time.Duration + type BRInfo struct + IFIDs []common.IFIDType + IFs map[common.IFIDType]*IFInfo + InternalAddr *net.UDPAddr + Name string + type ControlValidator struct + ID string + func (v *ControlValidator) Validate(new, old *RWTopology) error + type DefaultValidator struct + func (v *DefaultValidator) Validate(new, old *RWTopology) error + type GatewayInfo struct + AllowInterfaces []uint64 + CtrlAddr *TopoAddr + DataAddr *net.UDPAddr + ProbeAddr *net.UDPAddr + type IDAddrMap map[string]TopoAddr + func (m IDAddrMap) GetByID(id string) *TopoAddr + type IFInfo struct + BFD BFD + BRName string + IA addr.IA + ID common.IFIDType + InternalAddr *net.UDPAddr + LinkType LinkType + Local *net.UDPAddr + MTU int + Remote *net.UDPAddr + RemoteIFID common.IFIDType + Underlay underlay.Type + func (i IFInfo) CheckLinks(isCore bool, brName string) error + func (i IFInfo) String() string + type IfInfoMap map[common.IFIDType]IFInfo + type LinkType int + const Child + const Core + const Parent + const Peer + const Unset + func LinkTypeFromString(s string) LinkType + func (l *LinkType) UnmarshalText(data []byte) error + func (l LinkType) MarshalText() ([]byte, error) + func (l LinkType) String() string + type Loader struct + func NewLoader(cfg LoaderCfg) (*Loader, error) + func (l *Loader) CA() bool + func (l *Loader) ControlServiceAddress(id string) *net.UDPAddr + func (l *Loader) ControlServiceAddresses() []*net.UDPAddr + func (l *Loader) Core() bool + func (l *Loader) Gateways() ([]GatewayInfo, error) + func (l *Loader) Get() Topology + func (l *Loader) GetUnderlay(svc addr.HostSVC) (*net.UDPAddr, error) + func (l *Loader) HandleHTTP(w http.ResponseWriter, r *http.Request) + func (l *Loader) HiddenSegmentLookupAddresses() ([]*net.UDPAddr, error) + func (l *Loader) HiddenSegmentRegistrationAddresses() ([]*net.UDPAddr, error) + func (l *Loader) IA() addr.IA + func (l *Loader) InterfaceIDs() []uint16 + func (l *Loader) InterfaceInfoMap() map[common.IFIDType]IFInfo + func (l *Loader) MTU() uint16 + func (l *Loader) Run(ctx context.Context) error + func (l *Loader) Subscribe() *Subscription + func (l *Loader) UnderlayNextHop(ifID uint16) *net.UDPAddr + type LoaderCfg struct + File string + Metrics LoaderMetrics + Reload <-chan struct{} + Validator Validator + type LoaderMetrics struct + LastUpdate metrics.Gauge + ReadErrors metrics.Counter + Updates metrics.Counter + ValidationErrors metrics.Counter + type RWTopology struct + Attributes []jsontopo.Attribute + BR map[string]BRInfo + BRNames []string + CS IDAddrMap + DS IDAddrMap + HiddenSegmentLookup IDAddrMap + HiddenSegmentRegistration IDAddrMap + IA addr.IA + IFInfoMap IfInfoMap + MTU int + SIG map[string]GatewayInfo + Timestamp time.Time + func NewRWTopology() *RWTopology + func RWTopologyFromJSONBytes(b []byte) (*RWTopology, error) + func RWTopologyFromJSONFile(path string) (*RWTopology, error) + func RWTopologyFromJSONTopology(raw *jsontopo.Topology) (*RWTopology, error) + func (t *RWTopology) Active(now time.Time) bool + func (t *RWTopology) Copy() *RWTopology + func (t *RWTopology) GetTopoAddr(id string, svc ServiceType) (*TopoAddr, error) + type RouterValidator struct + ID string + func (v *RouterValidator) Validate(new, old *RWTopology) error + type ServiceNames []string + func (s ServiceNames) GetRandom() (string, error) + type ServiceType int + const Control + const Discovery + const Gateway + const HiddenSegmentLookup + const HiddenSegmentRegistration + const Router + const Unknown + func ServiceTypeFromString(s string) ServiceType + func (t ServiceType) String() string + type Subscription struct + Updates <-chan struct{} + func (s *Subscription) Close() + type TopoAddr struct + SCIONAddress *net.UDPAddr + UnderlayAddress *net.UDPAddr + func (a *TopoAddr) String() string + func (a *TopoAddr) UnderlayAddr() *net.UDPAddr + type Topology interface + Anycast func(svc addr.HostSVC) (*net.UDPAddr, error) + BR func(name string) (BRInfo, bool) + BRNames func() []string + CA func() bool + Core func() bool + Gateways func() ([]GatewayInfo, error) + IA func() addr.IA + IFInfoMap func() IfInfoMap + InterfaceIDs func() []common.IFIDType + MTU func() uint16 + MakeHostInfos func(st ServiceType) ([]*net.UDPAddr, error) + Multicast func(svc addr.HostSVC) ([]*net.UDPAddr, error) + PublicAddress func(svc addr.HostSVC, name string) *net.UDPAddr + SVCNames func(svc addr.HostSVC) ServiceNames + UnderlayAnycast func(svc addr.HostSVC) (*net.UDPAddr, error) + UnderlayMulticast func(svc addr.HostSVC) ([]*net.UDPAddr, error) + UnderlayNextHop func(ifID common.IFIDType) (*net.UDPAddr, bool) + Writable func() *RWTopology + func FromJSONBytes(raw []byte) (Topology, error) + func FromJSONFile(path string) (Topology, error) + func FromRWTopology(topo *RWTopology) Topology + func NewTopology() Topology + type Validator interface + Validate func(new, old *RWTopology) error