Files
mlsr/lsa/LsaSequenceNumber.go

67 lines
1.4 KiB
Go

// Package lsa
// @Author: Wang Feng
// @Description:
// @Version: 0.1.0
// @Date: 2022/3/9 21:42
// @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
//
package lsa
import (
"minlib/component"
"minlib/encoding"
"mlsr/extensions"
)
type LsaSequenceNumber struct {
component.CommonUint64
}
//
// LsaSequenceNumber
// @Description: 获取LSA序列号
// @receiver l
// @return uint64
//
func (l *LsaSequenceNumber) LsaSequenceNumber() uint64 {
return l.CommonUint64.Value()
}
//
// SetLsaSequenceNumber
// @Description: 设置LSA序列号
// @receiver l
// @param seq
//
func (l *LsaSequenceNumber) SetLsaSequenceNumber(seq uint64) {
l.SetValue(seq)
}
//
// WireEncode
// @Description: 线速编码
// @receiver l
// @param encoder
// @return int
// @return error
//
func (l *LsaSequenceNumber) WireEncode(encoder *encoding.Encoder) (int, error) {
l.CommonUint64.SetTlvType(extensions.TlvMlsrLsaSequenceNumber)
return l.CommonUint64.WireEncode(encoder)
}
//
// WireDecode
// @Description: 线速解码
// @receiver l
// @param block
// @return error
//
func (l *LsaSequenceNumber) WireDecode(block *encoding.Block) error {
// 检查type是否正确
if err := encoding.ExpectType(block.GetType(),extensions.TlvMlsrLsaSequenceNumber); err!=nil {
return err
}
return l.CommonUint64.WireDecode(block)
}