Documentation ¶
Index ¶
- Constants
- Variables
- type DHTNode
- type DHTQueryRequest
- type DHTQueryResponse
- type Frame
- type FrameType
- type FrameVersion
- type Pathfind
- type PrivateKey
- type PublicKey
- type Signature
- type SignatureWithHop
- type SwitchAnnouncement
- func (a *SwitchAnnouncement) Coords() SwitchPorts
- func (a *SwitchAnnouncement) MarshalBinary(buffer []byte) (int, error)
- func (a *SwitchAnnouncement) PeerCoords() SwitchPorts
- func (a *SwitchAnnouncement) Sign(privKey ed25519.PrivateKey, forPort SwitchPortID) error
- func (a *SwitchAnnouncement) UnmarshalBinary(data []byte) (int, error)
- type SwitchPortID
- type SwitchPorts
- func (a *SwitchPorts) Copy() SwitchPorts
- func (a SwitchPorts) DistanceTo(b SwitchPorts) int
- func (p SwitchPorts) EqualTo(o SwitchPorts) bool
- func (s SwitchPorts) Len() int
- func (s SwitchPorts) Less(i, j int) bool
- func (p SwitchPorts) MarshalBinary() ([]byte, error)
- func (s SwitchPorts) String() string
- func (s SwitchPorts) Swap(i, j int)
- func (p *SwitchPorts) UnmarshalBinary(b []byte) (int, error)
- type Varu64
Constants ¶
View Source
const SignatureWithHopMinSize = ed25519.PublicKeySize + ed25519.SignatureSize + 1
Variables ¶
View Source
var FrameMagicBytes = []byte{0x70, 0x69, 0x6e, 0x65}
Functions ¶
This section is empty.
Types ¶
type DHTNode ¶
type DHTNode struct { PublicKey PublicKey Coordinates SwitchPorts }
type DHTQueryRequest ¶
type DHTQueryRequest struct { RequestID [8]byte PublicKey [ed25519.PublicKeySize]byte }
func (*DHTQueryRequest) MarshalBinary ¶
func (r *DHTQueryRequest) MarshalBinary(buffer []byte) (int, error)
func (*DHTQueryRequest) UnmarshalBinary ¶
func (r *DHTQueryRequest) UnmarshalBinary(buffer []byte) (int, error)
type DHTQueryResponse ¶
type DHTQueryResponse struct { RequestID [8]byte Results []DHTNode PublicKey [ed25519.PublicKeySize]byte }
func (*DHTQueryResponse) MarshalBinary ¶
func (r *DHTQueryResponse) MarshalBinary(buffer []byte, private ed25519.PrivateKey) (int, error)
func (*DHTQueryResponse) UnmarshalBinary ¶
func (r *DHTQueryResponse) UnmarshalBinary(buffer []byte) (int, error)
type Frame ¶
type Frame struct { Version FrameVersion Type FrameType Destination SwitchPorts DestinationKey PublicKey Source SwitchPorts SourceKey PublicKey Payload []byte // contains filtered or unexported fields }
func (*Frame) UpdateSourceRoutedPath ¶
func (f *Frame) UpdateSourceRoutedPath(from SwitchPortID)
type FrameType ¶
type FrameType uint8
const ( TypeSTP FrameType = iota // root announcements, signed before forwarding to all peers TypeSource // traffic frame, forwarded using source routing TypeGreedy // traffic frame, forwarded using greedy routing TypePathfind // protocol frame, sign the update before forwarding it greedily TypeSwitchUpdate // sent from the switch to the router to update about peers TypeDHTRequest // protocol frame, forwarded using greedy routing TypeDHTResponse // protocol frame, forwarded using greedy routing TypeVirtualSnakeBootstrap // protocol frame, forwarded using SNEK predecessor ordering TypeVirtualSnakeBootstrapACK // protocol frame, forwarded using greedy routing TypeVirtualSnakeSetup // protocol frame, forwarded using greedy routing TypeVirtualSnake // traffic frame, forwarded using SNEK successor ordering TypeVirtualSnakePathfind // protocol frame, forwarded using SNEK successor ordering TypeVirtualSnakeTeardown // protocol frame )
type FrameVersion ¶
type FrameVersion uint8
const (
Version0 FrameVersion = iota
)
func (FrameVersion) String ¶
func (v FrameVersion) String() string
type Pathfind ¶
type Pathfind struct { Boundary uint8 VsetPath bool Signatures []SignatureWithHop }
func (*Pathfind) ReturnPath ¶
func (p *Pathfind) ReturnPath(reverse bool) SwitchPorts
func (Pathfind) Sign ¶
func (p Pathfind) Sign(privKey ed25519.PrivateKey, forPort SwitchPortID) (*Pathfind, error)
type PrivateKey ¶
type PrivateKey [ed25519.PrivateKeySize]byte
type PublicKey ¶
type PublicKey [ed25519.PublicKeySize]byte
type Signature ¶
type Signature [ed25519.SignatureSize]byte
type SignatureWithHop ¶
func (*SignatureWithHop) MarshalBinary ¶
func (a *SignatureWithHop) MarshalBinary(data []byte) (int, error)
func (*SignatureWithHop) UnmarshalBinary ¶
func (a *SignatureWithHop) UnmarshalBinary(data []byte) (int, error)
type SwitchAnnouncement ¶
type SwitchAnnouncement struct { RootPublicKey PublicKey Sequence Varu64 Signatures []SignatureWithHop }
func (*SwitchAnnouncement) Coords ¶
func (a *SwitchAnnouncement) Coords() SwitchPorts
func (*SwitchAnnouncement) MarshalBinary ¶
func (a *SwitchAnnouncement) MarshalBinary(buffer []byte) (int, error)
func (*SwitchAnnouncement) PeerCoords ¶ added in v0.2.0
func (a *SwitchAnnouncement) PeerCoords() SwitchPorts
func (*SwitchAnnouncement) Sign ¶
func (a *SwitchAnnouncement) Sign(privKey ed25519.PrivateKey, forPort SwitchPortID) error
func (*SwitchAnnouncement) UnmarshalBinary ¶
func (a *SwitchAnnouncement) UnmarshalBinary(data []byte) (int, error)
type SwitchPortID ¶
type SwitchPortID Varu64
type SwitchPorts ¶
type SwitchPorts []SwitchPortID
func (*SwitchPorts) Copy ¶
func (a *SwitchPorts) Copy() SwitchPorts
func (SwitchPorts) DistanceTo ¶
func (a SwitchPorts) DistanceTo(b SwitchPorts) int
func (SwitchPorts) EqualTo ¶
func (p SwitchPorts) EqualTo(o SwitchPorts) bool
func (SwitchPorts) Len ¶
func (s SwitchPorts) Len() int
func (SwitchPorts) Less ¶
func (s SwitchPorts) Less(i, j int) bool
func (SwitchPorts) MarshalBinary ¶
func (p SwitchPorts) MarshalBinary() ([]byte, error)
func (SwitchPorts) String ¶
func (s SwitchPorts) String() string
func (SwitchPorts) Swap ¶
func (s SwitchPorts) Swap(i, j int)
func (*SwitchPorts) UnmarshalBinary ¶
func (p *SwitchPorts) UnmarshalBinary(b []byte) (int, error)
Click to show internal directories.
Click to hide internal directories.