NAME

    Net::SNMP::Mixin::Dot1qVlanStatic - mixin class for 802.1-Q static vlan
    infos

SYNOPSIS

      use Net::SNMP;
      use Net::SNMP::Mixin qw/mixer init_mixins/;
    
      my $session = Net::SNMP->session( -hostname  => 'foo.bar.com');
      $session->mixer('Net::SNMP::Mixin::Dot1qVlanStatic');
      $session->init_mixins;
      snmp_dispatcher() if $session->nonblocking;
      $session->init_ok();
      die $session->errors if $session->errors;
    
      my $vlan_id2name = $session->map_vlan_id2name();
      foreach my $vlan_id ( keys %{$vlan_id2name} ) {
        printf "Vlan-Id: %4d  => Vlan-Name: %s\n",
          $vlan_id, $vlan_id2name->{$vlan_id};
      }
    
      my $vlan_ids2if_idx = $session->map_vlan_id2if_idx();
      foreach my $id ( keys %{$vlan_ids2if_idx} ) {
        printf "Vlan-Id: %4d\n", $id;
        printf "\tTagged-Ports:     %s\n", ( join ',', @{ $vlan_ids2if_idx->{$id}{tagged} } );
        printf "\tUntagged-Ports:   %s\n", ( join ',', @{ $vlan_ids2if_idx->{$id}{untagged} } );
      }
    
      # sorted by interface
      my $ports2ids = $session->map_if_idx2vlan_id();
      foreach my $if_idx ( keys %{$ports2ids} ) {
        printf "Interface: %10d\n", $if_idx;
        printf "\tTagged-Vlans:     %s\n", ( join ',', @{ $ports2ids->{$if_idx}{tagged} } );
        printf "\tUntagged-Vlans:   %s\n", ( join ',', @{ $ports2ids->{$if_idx}{untagged} } );
      }

DESCRIPTION

    A mixin class for vlan related infos from the dot1qVlanStaticTable
    within the Q-BRIDGE-MIB. The mixin-module provides methods for mapping
    between vlan-ids and vlan-names und relations between interface indexes
    and vlan-ids, tagged or untagged on these interfaces.

MIXIN METHODS

 OBJ->map_vlan_id2name()

    Returns a hash reference with statically configured vlan-ids as keys
    and the corresponing vlan-names as values:

      {
        vlan_id => vlan_name,
        vlan_id => vlan_name,
        ... ,
      }

 OBJ->map_vlan_id2if_idx()

    Returns a hash reference with the vlan-ids as keys and tagged and
    untagged if_idx as values:

      {
        vlan_id => {
          tagged   => [if_idx, ..., ],
          untagged => [if_idx, ..., ],
        },
    
        ... ,
      }
        

 OBJ->map_if_idx2vlan_id()

    Returns a hash reference with the interfaces as keys and tagged and
    untagged vlan-ids as values:

      {
        if_idx => {
          tagged   => [vlan_id, ..., ],
          untagged => [vlan_id, ..., ],
        },
    
        ... ,
      }
        

 OBJ->map_vlan_static_ids2names()

    DEPRECATED: map_vlan_static_ids2names is DEPRECATED in favor of
    map_vlan_id2name

 OBJ->map_vlan_static_ids2ports()

    DEPRECATED: map_vlan_static_ids2ports is DEPRECATED in favor of
    map_vlan_id2if_idx

    Returns a hash reference with the vlan-ids as keys and tagged and
    untagged bridge-port-lists as values:

 OBJ->map_vlan_static_ports2ids()

    DEPRECATED: map_vlan_static_ports2ids is DEPRECATED in favor of
    map_if_idx2vlan_id

    Returns a hash reference with the bridge-ports as keys and tagged and
    untagged vlan-ids as values:

INITIALIZATION

 OBJ->_init($reload)

    Fetch basic Dot1Q Vlan related snmp values from the host. Don't call
    this method direct!

PRIVATE METHODS

    Only for developers or maintainers.

 _dot1d_base_ports_cb($session)

    The callback for _fetch_dot1d_base_ports.

 _fetch_dot1q_vlan_static_tbl_entries()

    Fetch the vlan tag info for current vlans.

 _dot1q_vlan_static_tbl_entries_cb($session)

    The callback for _fetch_dot1q_vlan_static_tbl_entries_cb.

SEE ALSO

    Net::SNMP::Mixin::Dot1dBase for a mapping between ifIndexes and
    dot1dBasePorts.

REQUIREMENTS

    Net::SNMP, Net::SNMP::Mixin

AUTHOR

    Karl Gaissmaier <karl.gaissmaier at uni-ulm.de>

COPYRIGHT & LICENSE

    Copyright 2008-2021 Karl Gaissmaier, all rights reserved.

    This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.