module PacketGen::Header::MLDv2
This module contains all MLDv2
specific classes. @author Sylvain Daubert @since 2.4.0
Public Class Methods
decode(value)
click to toggle source
Decode value for MLDv2
Max Resp Code. See RFC 3810 §5.1.3 @param [Integer] value value to decode @return [Integer]
# File lib/packetgen/header/mldv2.rb, line 39 def self.decode(value) if value < 32_768 value else mant = value & 0xfff exp = (value >> 12) & 0x7 (0x1000 | mant) << (exp + 3) end end
encode(value)
click to toggle source
Encode value for MLDv2
Max Resp Code. Value may be encoded as a float, so some error may occur. See RFC 3810 §5.1.3 @param [Integer] value value to encode @return [Integer]
# File lib/packetgen/header/mldv2.rb, line 19 def self.encode(value) if value < 32_768 value elsif value > 8_387_583 0xffff else exp = 0 value >>= 3 while value > 8_191 exp += 1 value >>= 1 end 0x8000 | ((exp & 7) << 12) | (value & 0xfff) end end