Sha256: 967855d9659449ce23cf90f9ec1d7125473ae52652411e7e27e0220ae5267ead

Contents?: true

Size: 1.41 KB

Versions: 15

Compression:

Stored size: 1.41 KB

Contents

# This file is part of PacketGen
# See https://github.com/sdaubert/packetgen for more informations
# Copyright (C) 2016 Sylvain Daubert <sylvain.daubert@laposte.net>
# This program is published under MIT license.

# frozen_string_literal: true

module PacketGen
  module Header
    # IEEE 802.1Q VLAN tagging
    #
    # A VLAN tag consists of:
    # * a {#tci Tag Control Information} ({Types::Int16}),
    # * a {#ethertype} ({Types::Int16}),
    # * and a body (a {Types::String} or another Header class).
    #
    # == Create a Dot1q header
    #   # Create a IP packet in VLAN #43
    #   pkt = PacketGen.gen('Eth').add('Dot1q', vid: 43).add('IP')
    # @author Sylvain Daubert
    # @since 1.4.0
    class Dot1q < Base
      # @!attribute tci
      #  @return [Integer] 16-bit Tag Control Information
      define_field :tci, Types::Int16
      # @!attribute ethertype
      #  @return [Integer] 16-bit EtherType
      define_field :ethertype, Types::Int16
      # @!attribute body
      #  @return [Types::String,Header::Base]
      define_field :body, Types::String

      # @!attribute pcp
      #  @return [Integer] 3-bit Priority Code Point from {#tci}
      # @!attribute dei
      #  @return [Boolean] Drop Eligible Indicator from {#tci}
      # @!attribute vid
      #  @return [Integer] 12-bit VLAN ID from {#tci}
      define_bit_fields_on :tci, :pcp, 3, :dei, :vid, 12
    end

    Eth.bind Dot1q, ethertype: 0x8100
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
packetgen-3.1.3 lib/packetgen/header/dot1q.rb
packetgen-3.1.2 lib/packetgen/header/dot1q.rb
packetgen-3.1.1 lib/packetgen/header/dot1q.rb
packetgen-3.1.0 lib/packetgen/header/dot1q.rb
packetgen-3.0.2 lib/packetgen/header/dot1q.rb
packetgen-3.0.1 lib/packetgen/header/dot1q.rb
packetgen-3.0.0 lib/packetgen/header/dot1q.rb
packetgen-2.8.7 lib/packetgen/header/dot1q.rb
packetgen-2.8.6 lib/packetgen/header/dot1q.rb
packetgen-2.8.5 lib/packetgen/header/dot1q.rb
packetgen-2.8.4 lib/packetgen/header/dot1q.rb
packetgen-2.8.3 lib/packetgen/header/dot1q.rb
packetgen-2.8.1 lib/packetgen/header/dot1q.rb
packetgen-2.8.0 lib/packetgen/header/dot1q.rb
packetgen-2.7.0 lib/packetgen/header/dot1q.rb