Class: OSPFv2::SequenceNumber
  
  
  
  Constant Summary
  
  Constants included
     from OSPFv2
  ASBR_SUMMMARY_LSA, AllDRouters, AllSPFRouters, 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, SUMMARY_BASE_ADDRESS, SUMMARY_LSA, VERSION
  
    
      Class Method Summary
      collapse
    
    
  
    
      Instance Method Summary
      collapse
    
    
  
  
  
  
  
  
  
  
  
  Methods included from IE
  #method_missing
  
  
  
  
  
  
  
  Constructor Details
  
    
  
  
    
Returns a new instance of SequenceNumber.
   
 
  
  
    | 
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 | # File 'lib/ie/sequence_number.rb', line 49
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 | 
 
  
 
  Dynamic Method Handling
  
    This class handles dynamic methods through the method_missing method
    
      in the class OSPFv2::IE
    
  
  
 
  
    Class Method Details
    
      
  
  
    | 
33
34
35 | # File 'lib/ie/sequence_number.rb', line 33
def SequenceNumber.initial
  [N + 1].pack('I').unpack('i')[0]
end | 
 
    
      
  
  
    | 
37
38
39 | # File 'lib/ie/sequence_number.rb', line 37
def SequenceNumber.max
  [N - 1].pack('I').unpack('i')[0]
end | 
 
    
      
  
  
    | 
41
42
43 | # File 'lib/ie/sequence_number.rb', line 41
def SequenceNumber.N
  [N].pack('I').unpack('i')[0]
end | 
 
    
      
  
  
    .to_s(seqn)  ⇒ Object 
  
  
  
  
    | 
45
46
47 | # File 'lib/ie/sequence_number.rb', line 45
def SequenceNumber.to_s(seqn)
  new(seqn).to_s
end | 
 
    
   
  
    Instance Method Details
    
      
  
  
    | 
85
86
87
88
89 | # File 'lib/ie/sequence_number.rb', line 85
def +(num)
  seqn = (@seqn.unpack('i')[0]+num)
  @seqn = [seqn].pack('I')
  self
end | 
 
    
      
  
  
    | 
97
98
99 | # File 'lib/ie/sequence_number.rb', line 97
def -(num)
  self.+(-num)
end | 
 
    
      
  
  
    | 
66
67
68 | # File 'lib/ie/sequence_number.rb', line 66
def <=>(o)
  to_i <=> o.to_i
end | 
 
    
      
  
  
    | 
101
102
103 | # File 'lib/ie/sequence_number.rb', line 101
def encode
  [to_i].pack('N')
end | 
 
    
      
  
  
    #incr(num = 1)  ⇒ Object 
  
  
  
  
    | 
91
92
93
94
95 | # File 'lib/ie/sequence_number.rb', line 91
def incr(num=1)
  seqn = (@seqn.unpack('i')[0]+num)
  @seqn = [seqn].pack('I')
  self
end | 
 
    
      
  
  
    | 
105
106
107 | # File 'lib/ie/sequence_number.rb', line 105
def to_hash
  to_I
end | 
 
    
      
  
  
    | 
70
71
72 | # File 'lib/ie/sequence_number.rb', line 70
def to_i
  @seqn.unpack('i')[0]
end | 
 
    
      
  
  
    | 
73
74
75 | # File 'lib/ie/sequence_number.rb', line 73
def to_I
  @seqn.unpack('I')[0]
end | 
 
    
      
  
  
    | 
77
78
79 | # File 'lib/ie/sequence_number.rb', line 77
def to_s
  "0x"+ sprintf("%08.8x", to_I)
end | 
 
    
      
  
  
    | 
81
82
83 | # File 'lib/ie/sequence_number.rb', line 81
def to_s_ios
  "LS Seq Number: " + sprintf("%08.8x", to_I)
end |