Documentation ¶
Index ¶
- Constants
- type HopField
- func (h *HopField) CalcMac(mac hash.Hash, tsInt uint32, prev common.RawBytes) (common.RawBytes, error)
- func (h *HopField) Len() int
- func (h *HopField) String() string
- func (h *HopField) Verify(mac hash.Hash, tsInt uint32, prev common.RawBytes) error
- func (h *HopField) Write()
- func (h *HopField) WriteTo(w io.Writer) (int64, error)
- type InfoField
- type Path
Constants ¶
View Source
const ( HopFieldLength = common.LineLen DefaultHopFExpiry = 63 MacLen = 3 ErrorHopFTooShort = "HopF too short" ErrorHopFBadMac = "Bad HopF MAC" XoverMask = 0x01 VerifyOnlyMask = 0x02 RecurseMask = 0x04 )
View Source
const ( InfoFieldLength = common.LineLen ErrorInfoFTooShort = "InfoF too short" )
View Source
const ( MaxTTL = 24 * 60 * 60 // One day in seconds ExpTimeUnit = MaxTTL / (1 << 8) MaxTimestamp = ^uint32(0) )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type HopField ¶
type HopField struct { Xover bool VerifyOnly bool Recurse bool // ExpTime defines for how long this HopField is valid, // relative to the PathSegments's InfoField.Timestamp(). ExpTime uint8 // ConsIngress is the interface the PCB entered the AS during path construction. ConsIngress common.IFIDType // ConsEgress is the interface the PCB exited the AS during path construction. ConsEgress common.IFIDType // Mac is the message authentication code of this HF, // see CalcMac() to see how it should be calculated. Mac common.RawBytes // contains filtered or unexported fields }
func HopFFromRaw ¶
HopFFromRaw returns a HopField object from the raw content in b.
The new HopField object takes ownership of the first HopFieldLength bytes in b. Changing fields in the new object and calling Write will mutate the initial bytes in b.
func NewHopField ¶
func (*HopField) CalcMac ¶
func (h *HopField) CalcMac(mac hash.Hash, tsInt uint32, prev common.RawBytes) (common.RawBytes, error)
CalcMac calculates the MAC of a HopField and its preceeding HopField, if any.
type InfoField ¶
type InfoField struct { // Previously Up, ConsDir = !Up ConsDir bool Shortcut bool Peer bool // TsInt is the timestamp that denotes when the propagation of a path segment started. // Use Timestamp() to get a time.Time value. TsInt uint32 // ISD denotes the origin ISD of a path segment. ISD uint16 Hops uint8 }
func InfoFFromRaw ¶
type Path ¶
type Path struct { Raw common.RawBytes InfOff int // Offset of current Info Field HopOff int // Offset of current Hop Field }
func (*Path) IncOffsets ¶
IncOffsets updates the info and hop indices to the next routing field, while skipping verify only fields.
func (*Path) InitOffsets ¶
InitOffsets computes the initial Hop Field offset (in bytes) for a newly created packet.
Click to show internal directories.
Click to hide internal directories.