Class: OSPFv2::SequenceNumber
Constant Summary
Constants included
from OSPFv2
ASBR_SUMMMARY_LSA, AllDRouters, AllSPFRouters, AreaId, CheckAge, DefaultDestination, EXTERNAL_BASE_ADDRESS, EXTERNAL_LSA, IPPROTO_OSPF, InitialSequenceNumber, LINK_BASE_ADDRESS, LSA_HEADER_LEN, LSInfinity, LSRefreshTime, MaxAge, MaxAgeDiff, MaxSequenceNumber, MinLSArrival, MinLSInterval, N, NETWORK_BASE_ADDRESS, NETWORK_LSA, NSSA_LSA, Netmask, PACKET_HEADER_LEN, ROUTER_LINK_P2P, ROUTER_LINK_STUB, ROUTER_LINK_TRANSIT, ROUTER_LINK_VL, ROUTER_LSA, RouterId, SUMMARY_BASE_ADDRESS, SUMMARY_LSA, VERSION
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of SequenceNumber.
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/ie/sequence_number.rb', line 47
def initialize(seqn=:init)
if seqn.is_a?(Symbol)
if seqn == :max
@seqn= MaxSequenceNumber
elsif seqn == :init
@seqn = InitialSequenceNumber
elsif seqn == :reserved
@seqn = N
end
elsif seqn.is_a?(self.class)
@seqn = seqn.to_I
else
@seqn=seqn
end
@seqn = [@seqn].pack('I')
end
|
Class Method Details
31
32
33
|
# File 'lib/ie/sequence_number.rb', line 31
def SequenceNumber.initial
[N + 1].pack('I').unpack('i')[0]
end
|
35
36
37
|
# File 'lib/ie/sequence_number.rb', line 35
def SequenceNumber.max
[N - 1].pack('I').unpack('i')[0]
end
|
39
40
41
|
# File 'lib/ie/sequence_number.rb', line 39
def SequenceNumber.N
[N].pack('I').unpack('i')[0]
end
|
.to_s(seqn) ⇒ Object
43
44
45
|
# File 'lib/ie/sequence_number.rb', line 43
def SequenceNumber.to_s(seqn)
new(seqn).to_s
end
|
Instance Method Details
79
80
81
82
83
|
# File 'lib/ie/sequence_number.rb', line 79
def +(num)
seqn = (@seqn.unpack('i')[0]+num)
@seqn = [seqn].pack('I')
self
end
|
91
92
93
|
# File 'lib/ie/sequence_number.rb', line 91
def -(num)
self.+(-num)
end
|
64
65
66
|
# File 'lib/ie/sequence_number.rb', line 64
def <=>(o)
to_i <=> o.to_i
end
|
95
96
97
|
# File 'lib/ie/sequence_number.rb', line 95
def encode
[to_i].pack('N')
end
|
#incr(num = 1) ⇒ Object
85
86
87
88
89
|
# File 'lib/ie/sequence_number.rb', line 85
def incr(num=1)
seqn = (@seqn.unpack('i')[0]+num)
@seqn = [seqn].pack('I')
self
end
|
99
100
101
|
# File 'lib/ie/sequence_number.rb', line 99
def to_hash
to_I
end
|
68
69
70
|
# File 'lib/ie/sequence_number.rb', line 68
def to_i
@seqn.unpack('i')[0]
end
|
71
72
73
|
# File 'lib/ie/sequence_number.rb', line 71
def to_I
@seqn.unpack('I')[0]
end
|
75
76
77
|
# File 'lib/ie/sequence_number.rb', line 75
def to_s
"0x"+ sprintf("%08.8x", to_I)
end
|