1. 03 Mar, 2016 2 commits
  2. 02 Mar, 2016 1 commit
  3. 09 Feb, 2016 1 commit
    • Kirk Webb's avatar
      Extend the horrible "non-modular" hack in the Cisco snmpit module. · 0981023d
      Kirk Webb authored
      First, a "bug fix": By coincidence the snmpit Cisco module was able to
      build up the mod/port-to-ifindex mapping on newer switches where
      interface descriptions include a submodule ID (e.g.
      "GigabitEthernet1/0/1" vs. "GigabitEthernet1/1"). However, it was
      actually just grabbing the submodule ID in place of the module ID.  This
      is OK (in some loose sense) for non-modular switches where everything is
      effectivley on the same module. Not good for IOS/NX-OS switches with
      actual modules and submodule identifiers. Things would not have worked
      for these.  As a fix that retains backward compatibility, the Cisco
      snmpit module now correctly extracts the module ID, but subtracts '1'
      from it.  This allows existing installations that have zero-based module
      numbering in their database for non-modular IOS/NX-OS switches with
      submodule IDs to continue to work as is.
      
      The above nonsense is not what I set out to do, however, and the commit
      just gets worse. I extended the hack for non-modular switches with a mix
      of gigabit and ten gigabit to bump any ten gigabit interface port's
      module ID to "1". The existing hack already did this for non-modular
      switches with a mix of fast Ethernet and gigabit.  Absolutely horrific.
      I need a shower.
      0981023d
  4. 11 Jan, 2016 1 commit
  5. 01 Jan, 2016 1 commit
  6. 04 Dec, 2015 1 commit
  7. 16 Nov, 2015 1 commit
    • Kirk Webb's avatar
      Fix to snmpit_force10 for recent versions of FTOS (9.9+). · d7a3b274
      Kirk Webb authored
      FTOS has changed from using vlan-specific ifIndexes to the more
      sensible choice of vlan tags as indexes in the Q-BRIDGE-MIB tables.
      However, it still uses these ifindexes in the RFC1213 and IF-MIB
      mibs!  This broke the snmpit_force10 module.
      d7a3b274
  8. 02 Nov, 2015 2 commits
    • Kirk Webb's avatar
      Add horrible hack to snmpit_h3c module to cope with submodules · 5a2b215f
      Kirk Webb authored
      The Emulab DB and codebase cannot currently cope with switch submodules.
      Hack around this in the Comware module by using the ifindex as the
      port number when the submodule ID is non-zero.  So gross, but no less
      arbitrary than some other translation from submodule and port to unique
      identifier.
      5a2b215f
    • Kirk Webb's avatar
      Incorporate Comware v5 support from Keith Sklower · 8881dd48
      Kirk Webb authored
      Also includes cutover to ifDescr parsing instead of using static module
      offsets (which are unreliable in Comware 7).  This allowed me to get rid
      of the awful per-switch module offset hack I added.
      
      Includes some cleanup and minor bug fixes too.
      8881dd48
  9. 29 Oct, 2015 2 commits
    • Kirk Webb's avatar
      snmpit_force10: Enable various OF goodies on created instances. · 4e6f1b2c
      Kirk Webb authored
      L2 and L3 flow maps (hardware-assisted matching and forwarding),
      learning bridge assisted flows (hardware also, I think), and multiple
      forwarding tables.
      
      Default flows go into the "acl" table, which is carved up between various
      switch functions, and I believe is software-based (docs are vague).
      4e6f1b2c
    • Kirk Webb's avatar
      Add support for OpenFlow to Force10 snmpit module. · 84c3cfb2
      Kirk Webb authored
      Adding this support required a change to the createVlan() API call,
      which is why this commit touches so many modules. Optional/supplementary
      arguments to createVlan() are now passed as a fourth hash reference
      argument.
      
      This supplementary hash is used to inform device modules that a vlan to
      be created is to be associated with an OpenFlow instance.  Only the
      snmpit_force10 makes use of this information at this time. FTOS requires
      that openflow-enabled vlans be declared as such at creation time. However,
      snmpit's default control flow creates vlans first, then associates them
      with OF instances (if requested).  This is why the supplementary argument
      (OF hint) to createVlan() is needed here.
      
      OpenFlow configuration actions must all be performed via the
      existing Expect-based CLI interface to FTOS. Yuck.
      84c3cfb2
  10. 22 Oct, 2015 2 commits
    • Kirk Webb's avatar
      Disable OpenFlow when removing stale vlans in SyncVlansFromTables() · fee57b6e
      Kirk Webb authored
      If OF is specified for a vlan, and the sync operation is going to
      remove it because it is stale, try to disable OF before removal.
      fee57b6e
    • Kirk Webb's avatar
      Rework how OpenFlow setup is handled on the front-end · cda9ed7a
      Kirk Webb authored
      Previously OF would be setup after vlan creation, but before checking to
      see if all switches in scope actually support it.  This would lead to
      failures where the vlan was created and logged in the DB, but snmpit
      failed to setup OF, and so exit with a failure.  This in turn causes
      swap-in to fail, and leaves stale state on the switches and in the DB.
      
      Now when OF is requested for a vlan in an experiment, we first check
      to see if it is supported, then proceed.  We error out early before
      any OF-enabled vlan is created.
      cda9ed7a
  11. 19 Oct, 2015 1 commit
  12. 31 Aug, 2015 1 commit
  13. 11 Jul, 2015 1 commit
  14. 19 Jun, 2015 6 commits
    • Kirk Webb's avatar
    • Kirk Webb's avatar
    • Kirk Webb's avatar
      Fixes to make Comware OF support function correctly (squash commit). · b277d49a
      Kirk Webb authored
      Note: Since snmpit runs as the user, we don't rely on root's ssh keys
      for Netconf authentication.  The username and password to use can be
      encoded in the "community" field in the database (switch_stack_types, or
      overridden in switch_stacks):
      
        <community>[:<user>[:<pass>]]
      
      User/password default to:
      
        username: snmpit
        password: <community>
      b277d49a
    • Kirk Webb's avatar
      Install snmpit_libNetconf · 39bf502e
      Kirk Webb authored
      39bf502e
    • Kirk Webb's avatar
      Add OpenFlow support to HP Comware snmpit module (snmpit_h3c). · f6ff476d
      Kirk Webb authored
      This commit fills in all of the snmpit OF API calls for the Comware
      module.  Note that Comware doesn't support OF "listener" ports, such as
      are available on the Procurve/Provision switches.  Therefore, the
      functions related to listener ports return an error.
      
      It is assumed that when "disableOpenflow()" is called, that the caller
      also intends to destroy the related OpenFlow instance on the switch.
      There is no other call in the snmpit API for explicitly removing OF
      instances.
      f6ff476d
    • Kirk Webb's avatar
      Netconf-over-ssh library for snmpit. · 8bf81708
      Kirk Webb authored
      I don't know what I like most about this module, working with Expect or
      handling XML namespaces... Includes the basics of the Netconf protocol.
      Only tested with HP Netconf-over-ssh (Comware)!
      
      Main interface calls:
      
      $ncobj = snmpit_libNetconf->new($switch, $userpass, $port, $debuglvl)
      
      Create a new Netconf library object, pointed at switch host $switch.
      Username with optional password are passed as second argument (delimit
      with ':'). $port is port to connect to, and $debuglvl is the debugging
      level. Last two arguments are optional.
      
      $ncobj->doGet($filter)
      
      Execute Netconf "Get", with optional Netconf XML filter argument.
      
      $ncobj->doGetConfig($filter, $source)
      
      Get entire switch config, or partial config if $filter is supplied.
      $source is which config (running or saved).  Arguments are optional.
      
      $ncobj->doEditConfig($xmlconf, $target, $defop);
      
      Edit the switch's config.  $xmlconf is an XML::LibXML::Node object
      containing the XML-encoded configuration update. $target identifies what
      to apply it to (running or startup. Defaults to running). $defop is the
      default operation (merge, replace, none. Defaults to "merge").  Last two
      arguments are optional.
      
      $ncobj->doRPC($cmd, $xmlarg)
      
      Generic RPC dispatcher (Used by the other "do" commands above).  $cmd is
      the rpc command to execute. Optional $xmlarg parameter is an
      XML:LibXML::Node object that encodes the arguments to $cmd.
      8bf81708
  15. 15 May, 2015 1 commit
  16. 06 May, 2015 1 commit
    • David Johnson's avatar
      Bug Fix: don't add undefined ports to list returned by getVlanPorts(). · 8a29082b
      David Johnson authored
      Handles the case where a wire in the wires table has an 'Unused' role
      (which is how logical wires begin life -- then once their underlying
      physical links are built into vlans, snmpit changes their wires.role
      changes to 'Node').  This change ensures undef ports (which is what is
      returned for wires entries with 'Unused' roles) don't make it into the
      getVlanPorts list, where they cause snmpit to die, of course.
      8a29082b
  17. 22 Apr, 2015 8 commits
  18. 26 Mar, 2015 1 commit
    • Kirk Webb's avatar
      Update Force10 module to dynamically determine size of PortSet vectors. · 8a20f444
      Kirk Webb authored
      It's clear from the various Force10 switches and firmware versions
      that we've seen now that the vlan membership PortSet bit
      vector size can vary widely.  This variation even happens between
      different versions of firmware on the same switch!  So, now we
      detect this dynamically when the backend force10 snmpit object is
      instantiated (in readifIndex()).
      8a20f444
  19. 25 Mar, 2015 1 commit
  20. 20 Feb, 2015 1 commit
  21. 12 Feb, 2015 1 commit
  22. 09 Feb, 2015 1 commit
  23. 10 Dec, 2014 2 commits