Documentation
¶
Index ¶
- Constants
- type AsicdClient
- type AuthenticationType
- type BFDServer
- func (server *BFDServer) AdminDownBfdSession(sessionMgmt BfdSessionMgmt) error
- func (server *BFDServer) AdminDownPerLinkBfdSessions(DestIp string) error
- func (server *BFDServer) AdminUpBfdSession(sessionMgmt BfdSessionMgmt) error
- func (server *BFDServer) AdminUpPerLinkBfdSessions(DestIp string) error
- func (server *BFDServer) BuildLagPropertyMap() error
- func (server *BFDServer) BuildPortPropertyMap() error
- func (server *BFDServer) ConnectToServers(paramsFile string)
- func (server *BFDServer) ConvertBfdAuthTypeStrToVal(authType string) AuthenticationType
- func (server *BFDServer) ConvertBfdAuthTypeValToStr(authType AuthenticationType) string
- func (server *BFDServer) ConvertBfdSessionDiagValToStr(diag BfdDiagnostic) string
- func (server *BFDServer) ConvertBfdSessionStateValToStr(state BfdSessionState) string
- func (server *BFDServer) CreateASICdSubscriber()
- func (server *BFDServer) CreateBfdSession(sessionMgmt BfdSessionMgmt) (*BfdSession, error)
- func (server *BFDServer) CreateRIBdSubscriber()
- func (server *BFDServer) DeleteBfdSession(sessionMgmt BfdSessionMgmt) error
- func (server *BFDServer) DeletePerLinkSessions(DestIp string, Protocol bfddCommonDefs.BfdSessionOwner, ForceDel bool) error
- func (server *BFDServer) DispatchReceivedBfdPacket(ipAddr string, bfdPacket *BfdControlPacket) error
- func (server *BFDServer) FindBfdSession(DestIp string) (sessionId int32, found bool)
- func (server *BFDServer) FindBfdSessionContainingAddr(DestIp string) (sessionId int32, found bool)
- func (server *BFDServer) GetBfdGlobalState() *GlobalState
- func (server *BFDServer) GetBfdSessionParamState(paramName string) (*SessionParamState, bool)
- func (server *BFDServer) GetBfdSessionState(ipAddr string) (*SessionState, bool)
- func (server *BFDServer) GetBulkBfdSessionParamStates(idx int, cnt int) (int, int, []SessionParamState)
- func (server *BFDServer) GetBulkBfdSessionStates(idx int, cnt int) (int, int, []SessionState)
- func (server *BFDServer) GetIfIndexFromDestIp(DestIp string) (int32, string, error)
- func (server *BFDServer) GetNewSessionId() int32
- func (server *BFDServer) GetTxJitter() int32
- func (server *BFDServer) HandleNextHopChange(DestIp string, IfIndex int32, Reachable bool) error
- func (server *BFDServer) InitPublisher(pub_str string) (pub *nanomsg.PubSocket)
- func (server *BFDServer) InitServer(paramFile string)
- func (server *BFDServer) NewBfdSession(DestIp string, ParamName string, Interface string, ...) *BfdSession
- func (server *BFDServer) NewNormalBfdSession(Interface string, LocalIp string, DestIp string, ParamName string, ...) *BfdSession
- func (server *BFDServer) NewPerLinkBfdSessions(IfIndex int32, LocalIp string, DestIp string, ParamName string, ...) error
- func (server *BFDServer) PublishSessionNotifications()
- func (server *BFDServer) ResetBfdSession(sessionId int32) error
- func (server *BFDServer) SendAdminDownToAllNeighbors() error
- func (server *BFDServer) SendAdminUpToAllNeighbors() error
- func (server *BFDServer) SendDeleteToAllSessions() error
- func (server *BFDServer) SessionDeleteHandler(session *BfdSession, Protocol bfddCommonDefs.BfdSessionOwner, ForceDel bool) error
- func (server *BFDServer) SigHandler(dbHdl *dbutils.DBUtil)
- func (server *BFDServer) StartBfdSesionServer() error
- func (server *BFDServer) StartBfdSessionRxTx() error
- func (server *BFDServer) StartServer(paramFile string, dbHdl *dbutils.DBUtil)
- func (server *BFDServer) StartSessionHandler() error
- func (server *BFDServer) StartSessionRetryHandler() error
- func (server *BFDServer) UpdateBfdSessionsUsingParam(paramName string) error
- type BfdAuthHeader
- type BfdControlPacket
- type BfdDiagnostic
- type BfdGlobal
- type BfdSession
- func (session *BfdSession) ApplyTxJitter() int32
- func (session *BfdSession) AuthenticateReceivedControlPacket(bfdPacket *BfdControlPacket) bool
- func (session *BfdSession) CanProcessBfdControlPacket(bfdPacket *BfdControlPacket) bool
- func (session *BfdSession) CheckAnyRemoteParamChanged(bfdPacket *BfdControlPacket) error
- func (session *BfdSession) CheckIfAnyProtocolRegistered() bool
- func (session *BfdSession) EventHandler(event BfdSessionEvent) error
- func (session *BfdSession) GetBfdSessionNotification() bool
- func (session *BfdSession) HandleSessionTimeout()
- func (session *BfdSession) InitiatePollSequence() error
- func (session *BfdSession) IsSessionActive() bool
- func (session *BfdSession) LocalAdminDown() error
- func (session *BfdSession) MoveToDownState() error
- func (session *BfdSession) MoveToInitState() error
- func (session *BfdSession) MoveToUpState() error
- func (session *BfdSession) NeedBfdPacketUpdate() bool
- func (session *BfdSession) ProcessBfdPacket(bfdPacket *BfdControlPacket) error
- func (session *BfdSession) ProcessPollSequence(bfdPacket *BfdControlPacket) error
- func (session *BfdSession) RemoteAdminDown() error
- func (session *BfdSession) RemoteChangedDemandMode(bfdPacket *BfdControlPacket) error
- func (session *BfdSession) ResetLocalSessionParams() error
- func (session *BfdSession) ResetRemoteSessionParams() error
- func (session *BfdSession) SendBfdNotification() error
- func (session *BfdSession) SendPeriodicControlPackets()
- func (session *BfdSession) StartBfdSession() error
- func (session *BfdSession) StartPerLinkSessionClient(bfdServer *BFDServer) error
- func (session *BfdSession) StartPerLinkSessionServer(bfdServer *BFDServer) error
- func (session *BfdSession) StartSessionClient(server *BFDServer) error
- func (session *BfdSession) StartSessionServer() error
- func (session *BfdSession) StopBfdSession() error
- func (session *BfdSession) UpdateBfdSessionControlPacket() error
- type BfdSessionEvent
- type BfdSessionMgmt
- type BfdSessionParam
- type BfdSessionState
- type ClientJson
- type GlobalConfig
- type GlobalState
- type LagProperty
- type PortProperty
- type RecvedBfdPacket
- type RibdClient
- type SessionConfig
- type SessionParamConfig
- type SessionParamState
- type SessionState
- type VlanProperty
Constants ¶
const ( DEFAULT_BFD_VERSION = 1 DEFAULT_DETECT_MULTI = 3 DEFAULT_DESIRED_MIN_TX_INTERVAL = 250000 DEFAULT_REQUIRED_MIN_RX_INTERVAL = 250000 DEFAULT_REQUIRED_MIN_ECHO_RX_INTERVAL = 0 DEFAULT_CONTROL_PACKET_LEN = 24 DEST_PORT = 3784 SRC_PORT = 49152 DEST_PORT_LAG = 6784 SRC_PORT_LAG = 49153 STARTUP_TX_INTERVAL = 2000000 STARTUP_RX_INTERVAL = 2000000 TX_JITTER = 10 //Timer will be running at 0 to 10% less than TX_INTERVAL )
Constants
const ( BFD_MP = 0x01 // Multipoint BFD_DEMAND = 0x02 // Demand mode BFD_AUTH_PRESENT = 0x04 // Authentication present BFD_CP_INDEPENDENT = 0x08 // Control plane independent BFD_FINAL = 0x10 // Final message, response to Poll BFD_POLL = 0x20 // Poll message )
Flags in BFD Control packet
const ( PACKET_QUEUE_SIZE = 128 MAX_NUM_SESSIONS = 1024 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AsicdClient ¶
type AsicdClient struct {
ipcutils.IPCClientBase
ClientHdl *asicdServices.ASICDServicesClient
}
type AuthenticationType ¶
type AuthenticationType uint8
const ( BFD_AUTH_TYPE_RESERVED AuthenticationType = 0 // Reserved BFD_AUTH_TYPE_SIMPLE AuthenticationType = 1 // Simple Password BFD_AUTH_TYPE_KEYED_MD5 AuthenticationType = 2 // Keyed MD5 BFD_AUTH_TYPE_METICULOUS_MD5 AuthenticationType = 3 // Meticulous Keyed MD5 BFD_AUTH_TYPE_KEYED_SHA1 AuthenticationType = 4 // Keyed SHA1 BFD_AUTH_TYPE_METICULOUS_SHA1 AuthenticationType = 5 // Meticulous Keyed SHA1 )
type BFDServer ¶
type BFDServer struct {
ServerStartedCh chan bool
GlobalConfigCh chan GlobalConfig
CreateSessionCh chan BfdSessionMgmt
DeleteSessionCh chan BfdSessionMgmt
AdminUpSessionCh chan BfdSessionMgmt
AdminDownSessionCh chan BfdSessionMgmt
ResetSessionCh chan int32
SessionConfigCh chan SessionConfig
CreatedSessionCh chan int32
FailedSessionClientCh chan int32
BfdPacketRecvCh chan RecvedBfdPacket
SessionParamConfigCh chan SessionParamConfig
SessionParamDeleteCh chan string
// contains filtered or unexported fields
}
func NewBFDServer ¶
func (*BFDServer) AdminDownBfdSession ¶
func (server *BFDServer) AdminDownBfdSession(sessionMgmt BfdSessionMgmt) error
AdminDownBfdSession ceases the session.
func (*BFDServer) AdminDownPerLinkBfdSessions ¶
func (*BFDServer) AdminUpBfdSession ¶
func (server *BFDServer) AdminUpBfdSession(sessionMgmt BfdSessionMgmt) error
AdminUpBfdSession ceases the session.
func (*BFDServer) AdminUpPerLinkBfdSessions ¶
func (*BFDServer) BuildLagPropertyMap ¶
func (*BFDServer) BuildPortPropertyMap ¶
func (*BFDServer) ConnectToServers ¶
func (*BFDServer) ConvertBfdAuthTypeStrToVal ¶
func (server *BFDServer) ConvertBfdAuthTypeStrToVal(authType string) AuthenticationType
func (*BFDServer) ConvertBfdAuthTypeValToStr ¶
func (server *BFDServer) ConvertBfdAuthTypeValToStr(authType AuthenticationType) string
func (*BFDServer) ConvertBfdSessionDiagValToStr ¶
func (server *BFDServer) ConvertBfdSessionDiagValToStr(diag BfdDiagnostic) string
func (*BFDServer) ConvertBfdSessionStateValToStr ¶
func (server *BFDServer) ConvertBfdSessionStateValToStr(state BfdSessionState) string
func (*BFDServer) CreateASICdSubscriber ¶
func (server *BFDServer) CreateASICdSubscriber()
func (*BFDServer) CreateBfdSession ¶
func (server *BFDServer) CreateBfdSession(sessionMgmt BfdSessionMgmt) (*BfdSession, error)
CreateBfdSession initializes a session and starts cpntrol packets exchange. This function is called when a protocol registers with BFD to monitor a destination IP.
func (*BFDServer) CreateRIBdSubscriber ¶
func (server *BFDServer) CreateRIBdSubscriber()
func (*BFDServer) DeleteBfdSession ¶
func (server *BFDServer) DeleteBfdSession(sessionMgmt BfdSessionMgmt) error
DeleteBfdSession ceases the session. A session down control packet is sent to BFD neighbor before deleting the session. This function is called when a protocol decides to stop monitoring the destination IP.
func (*BFDServer) DeletePerLinkSessions ¶
func (server *BFDServer) DeletePerLinkSessions(DestIp string, Protocol bfddCommonDefs.BfdSessionOwner, ForceDel bool) error
func (*BFDServer) DispatchReceivedBfdPacket ¶
func (server *BFDServer) DispatchReceivedBfdPacket(ipAddr string, bfdPacket *BfdControlPacket) error
func (*BFDServer) FindBfdSession ¶
func (*BFDServer) FindBfdSessionContainingAddr ¶
func (*BFDServer) GetBfdGlobalState ¶
func (server *BFDServer) GetBfdGlobalState() *GlobalState
func (*BFDServer) GetBfdSessionParamState ¶
func (server *BFDServer) GetBfdSessionParamState(paramName string) (*SessionParamState, bool)
func (*BFDServer) GetBfdSessionState ¶
func (server *BFDServer) GetBfdSessionState(ipAddr string) (*SessionState, bool)
func (*BFDServer) GetBulkBfdSessionParamStates ¶
func (*BFDServer) GetBulkBfdSessionStates ¶
func (*BFDServer) GetIfIndexFromDestIp ¶
func (*BFDServer) GetNewSessionId ¶
func (*BFDServer) GetTxJitter ¶
func (*BFDServer) HandleNextHopChange ¶
This function handles NextHop change from RIB. A Poll control packet will be sent to BFD neighbor and expect a Final control packet.
func (*BFDServer) InitPublisher ¶
func (*BFDServer) InitServer ¶
func (*BFDServer) NewBfdSession ¶
func (server *BFDServer) NewBfdSession(DestIp string, ParamName string, Interface string, Protocol bfddCommonDefs.BfdSessionOwner, PerLink bool) *BfdSession
func (*BFDServer) NewNormalBfdSession ¶
func (server *BFDServer) NewNormalBfdSession(Interface string, LocalIp string, DestIp string, ParamName string, PerLink bool, Protocol bfddCommonDefs.BfdSessionOwner) *BfdSession
func (*BFDServer) NewPerLinkBfdSessions ¶
func (server *BFDServer) NewPerLinkBfdSessions(IfIndex int32, LocalIp string, DestIp string, ParamName string, Protocol bfddCommonDefs.BfdSessionOwner) error
func (*BFDServer) PublishSessionNotifications ¶
func (server *BFDServer) PublishSessionNotifications()
func (*BFDServer) ResetBfdSession ¶
func (*BFDServer) SendAdminDownToAllNeighbors ¶
func (*BFDServer) SendAdminUpToAllNeighbors ¶
func (*BFDServer) SendDeleteToAllSessions ¶
func (*BFDServer) SessionDeleteHandler ¶
func (server *BFDServer) SessionDeleteHandler(session *BfdSession, Protocol bfddCommonDefs.BfdSessionOwner, ForceDel bool) error
func (*BFDServer) SigHandler ¶
func (*BFDServer) StartBfdSesionServer ¶
func (*BFDServer) StartBfdSessionRxTx ¶
func (*BFDServer) StartServer ¶
func (*BFDServer) StartSessionHandler ¶
func (*BFDServer) StartSessionRetryHandler ¶
func (*BFDServer) UpdateBfdSessionsUsingParam ¶
type BfdAuthHeader ¶
type BfdAuthHeader struct {
Type AuthenticationType
AuthKeyID uint8
SequenceNumber uint32
AuthData []byte
}
type BfdControlPacket ¶
type BfdControlPacket struct {
Version uint8
Diagnostic BfdDiagnostic
State BfdSessionState
Poll bool
Final bool
ControlPlaneIndependent bool
AuthPresent bool
Demand bool
Multipoint bool // Must always be false
DetectMult uint8
MyDiscriminator uint32
YourDiscriminator uint32
DesiredMinTxInterval time.Duration
RequiredMinRxInterval time.Duration
RequiredMinEchoRxInterval time.Duration
AuthHeader *BfdAuthHeader
}
func DecodeBfdControlPacket ¶
func DecodeBfdControlPacket(data []byte) (*BfdControlPacket, error)
* Decode the control packet
func NewBfdControlPacketDefault ¶
func NewBfdControlPacketDefault() *BfdControlPacket
func (*BfdControlPacket) CreateBfdControlPacket ¶
func (p *BfdControlPacket) CreateBfdControlPacket() ([]byte, error)
* Create a control packet
type BfdDiagnostic ¶
type BfdDiagnostic int
const ( DIAG_NONE BfdDiagnostic = 0 // No Diagnostic DIAG_TIME_EXPIRED BfdDiagnostic = 1 // Control Detection Time Expired DIAG_ECHO_FAILED BfdDiagnostic = 2 // Echo Function Failed DIAG_NEIGHBOR_SIGNAL_DOWN BfdDiagnostic = 3 // Neighbor Signaled Session Down DIAG_FORWARD_PLANE_RESET BfdDiagnostic = 4 // Forwarding Plane Reset DIAG_PATH_DOWN BfdDiagnostic = 5 // Path Down DIAG_CONCAT_PATH_DOWN BfdDiagnostic = 6 // Concatenated Path Down DIAG_ADMIN_DOWN BfdDiagnostic = 7 // Administratively Down DIAG_REV_CONCAT_PATH_DOWN BfdDiagnostic = 8 // Reverse Concatenated Path Down )
type BfdGlobal ¶
type BfdGlobal struct {
Vrf string
Enabled bool
NumSessions uint32
Sessions map[int32]*BfdSession
SessionsIdSlice []int32
SessionsByIp map[string]*BfdSession
InactiveSessionsIdSlice []int32
NumSessionParams uint32
SessionParams map[string]*BfdSessionParam
NumUpSessions uint32
NumDownSessions uint32
NumAdminDownSessions uint32
}
type BfdSession ¶
type BfdSession struct {
TxTimeoutCh chan int32
SessionTimeoutCh chan int32
ReceivedPacketCh chan *BfdControlPacket
SessionStopClientCh chan bool
SessionStopServerCh chan bool
// contains filtered or unexported fields
}
func (*BfdSession) ApplyTxJitter ¶
func (session *BfdSession) ApplyTxJitter() int32
func (*BfdSession) AuthenticateReceivedControlPacket ¶
func (session *BfdSession) AuthenticateReceivedControlPacket(bfdPacket *BfdControlPacket) bool
func (*BfdSession) CanProcessBfdControlPacket ¶
func (session *BfdSession) CanProcessBfdControlPacket(bfdPacket *BfdControlPacket) bool
func (*BfdSession) CheckAnyRemoteParamChanged ¶
func (session *BfdSession) CheckAnyRemoteParamChanged(bfdPacket *BfdControlPacket) error
func (*BfdSession) CheckIfAnyProtocolRegistered ¶
func (session *BfdSession) CheckIfAnyProtocolRegistered() bool
func (*BfdSession) EventHandler ¶
func (session *BfdSession) EventHandler(event BfdSessionEvent) error
State Machine
+--+
| | UP, TIMER
| V
DOWN +------+ INIT
+------------| |------------+
| | DOWN | |
| +-------->| |<--------+ |
| | +------+ | |
| | | |
| | | |
| | DOWN,| |
| |TIMER TIMER| |
V | | V
+------+ +------+
+----| | | |----+
DOWN| | INIT |--------------------->| UP | |INIT, UP
+--->| | INIT, UP | |<---+
+------+ +------+
EventHandler is called after receiving a BFD packet from remote.
func (*BfdSession) GetBfdSessionNotification ¶
func (session *BfdSession) GetBfdSessionNotification() bool
func (*BfdSession) HandleSessionTimeout ¶
func (session *BfdSession) HandleSessionTimeout()
func (*BfdSession) InitiatePollSequence ¶
func (session *BfdSession) InitiatePollSequence() error
func (*BfdSession) IsSessionActive ¶
func (session *BfdSession) IsSessionActive() bool
func (*BfdSession) LocalAdminDown ¶
func (session *BfdSession) LocalAdminDown() error
func (*BfdSession) MoveToDownState ¶
func (session *BfdSession) MoveToDownState() error
func (*BfdSession) MoveToInitState ¶
func (session *BfdSession) MoveToInitState() error
func (*BfdSession) MoveToUpState ¶
func (session *BfdSession) MoveToUpState() error
func (*BfdSession) NeedBfdPacketUpdate ¶
func (session *BfdSession) NeedBfdPacketUpdate() bool
func (*BfdSession) ProcessBfdPacket ¶
func (session *BfdSession) ProcessBfdPacket(bfdPacket *BfdControlPacket) error
func (*BfdSession) ProcessPollSequence ¶
func (session *BfdSession) ProcessPollSequence(bfdPacket *BfdControlPacket) error
func (*BfdSession) RemoteAdminDown ¶
func (session *BfdSession) RemoteAdminDown() error
func (*BfdSession) RemoteChangedDemandMode ¶
func (session *BfdSession) RemoteChangedDemandMode(bfdPacket *BfdControlPacket) error
func (*BfdSession) ResetLocalSessionParams ¶
func (session *BfdSession) ResetLocalSessionParams() error
func (*BfdSession) ResetRemoteSessionParams ¶
func (session *BfdSession) ResetRemoteSessionParams() error
func (*BfdSession) SendBfdNotification ¶
func (session *BfdSession) SendBfdNotification() error
func (*BfdSession) SendPeriodicControlPackets ¶
func (session *BfdSession) SendPeriodicControlPackets()
func (*BfdSession) StartBfdSession ¶
func (session *BfdSession) StartBfdSession() error
Restart session that was stopped earlier due to global Bfd disable.
func (*BfdSession) StartPerLinkSessionClient ¶
func (session *BfdSession) StartPerLinkSessionClient(bfdServer *BFDServer) error
func (*BfdSession) StartPerLinkSessionServer ¶
func (session *BfdSession) StartPerLinkSessionServer(bfdServer *BFDServer) error
func (*BfdSession) StartSessionClient ¶
func (session *BfdSession) StartSessionClient(server *BFDServer) error
func (*BfdSession) StartSessionServer ¶
func (session *BfdSession) StartSessionServer() error
func (*BfdSession) StopBfdSession ¶
func (session *BfdSession) StopBfdSession() error
Stop session as Bfd is disabled globally. Do not delete
func (*BfdSession) UpdateBfdSessionControlPacket ¶
func (session *BfdSession) UpdateBfdSessionControlPacket() error
type BfdSessionEvent ¶
type BfdSessionEvent int
const ( REMOTE_DOWN BfdSessionEvent = 1 REMOTE_INIT BfdSessionEvent = 2 REMOTE_UP BfdSessionEvent = 3 TIMEOUT BfdSessionEvent = 4 ADMIN_DOWN BfdSessionEvent = 5 ADMIN_UP BfdSessionEvent = 6 REMOTE_ADMIN_DOWN BfdSessionEvent = 7 )
type BfdSessionMgmt ¶
type BfdSessionMgmt struct {
DestIp string
ParamName string
Interface string
Protocol bfddCommonDefs.BfdSessionOwner
PerLink bool
ForceDel bool
}
type BfdSessionParam ¶
type BfdSessionParam struct {
// contains filtered or unexported fields
}
type BfdSessionState ¶
type BfdSessionState int
const ( STATE_ADMIN_DOWN BfdSessionState = 0 STATE_DOWN BfdSessionState = 1 STATE_INIT BfdSessionState = 2 STATE_UP BfdSessionState = 3 )
type ClientJson ¶
type GlobalConfig ¶
type GlobalState ¶
type LagProperty ¶
type LagProperty struct {
Links []int32
}
type PortProperty ¶
type RecvedBfdPacket ¶
type RibdClient ¶
type RibdClient struct {
ipcutils.IPCClientBase
ClientHdl *ribd.RIBDServicesClient
}
type SessionConfig ¶
type SessionConfig struct {
DestIp string
ParamName string
Interface string
PerLink bool
Protocol bfddCommonDefs.BfdSessionOwner
Operation bfddCommonDefs.BfdSessionOperation
}
type SessionParamConfig ¶
type SessionParamState ¶
type SessionParamState struct {
Name string
NumSessions int32
LocalMultiplier int32
DesiredMinTxInterval int32
RequiredMinRxInterval int32
RequiredMinEchoRxInterval int32
DemandEnabled bool
AuthenticationEnabled bool
AuthenticationType AuthenticationType
AuthenticationKeyId int32
AuthenticationData string
}
type SessionState ¶
type SessionState struct {
IpAddr string
LocalAddr string
SessionId int32
ParamName string
Interface string
InterfaceSpecific bool
PerLinkSession bool
LocalMacAddr net.HardwareAddr
RemoteMacAddr net.HardwareAddr
RegisteredProtocols []bool
SessionState BfdSessionState
RemoteSessionState BfdSessionState
LocalDiscriminator uint32
RemoteDiscriminator uint32
LocalDiagType BfdDiagnostic
DesiredMinTxInterval int32
RequiredMinRxInterval int32
RemoteMinRxInterval int32
DetectionMultiplier int32
RemoteDetectionMultiplier int32
DemandMode bool
RemoteDemandMode bool
AuthType AuthenticationType
AuthSeqKnown bool
ReceivedAuthSeq uint32
SentAuthSeq uint32
NumTxPackets uint32
NumRxPackets uint32
ToDownCount uint32
ToUpCount uint32
UpTime time.Time
}