GithubHelp home page GithubHelp logo

aristanetworks / openconfig-featureprofiles Goto Github PK

View Code? Open in Web Editor NEW

This project forked from openconfig/featureprofiles

1.0 2.0 0.0 20.39 MB

Feature Profiles are groups of OpenConfig paths and tests which verify their behavior

License: Apache License 2.0

Shell 0.31% Perl 0.05% Go 99.53% Makefile 0.11% Dockerfile 0.01%

openconfig-featureprofiles's Introduction

Feature Profiles

Feature profiles defines groups of OpenConfig paths that can be invoked on network devices. A feature profile may contain configuration, telemetry, operational or any other paths that a device exposes. Example management plane device APIs are gNMI, and gNOI. Example control plane APIs are gRIBI, and protocols such as BGP, IS-IS.

Feature profiles also includes a suite of Ondatra tests for validating the network device behavior for each defined feature. If you are new to Ondatra, please start by reading the Ondata README and taking the Ondatra tour.

Contributing

For information about how to contribute to OpenConfig Feature Profiles, please see Contributing to OpenConfig Feature Profiles.

Feedback and suggestions to improve OpenConfig Feature Profiles is welcomed on the public mailing list, or by opening a GitHub issue.

Running Tests on Virtual Devices

Warning: Though we are trying to use RFC defined non-globally routable space in tests, there might be tests (e.g. scaling tests) that are still using public routable ranges. Users who run the tests own the responsibility of not leaking test traffic to internet.

Tests may be run on virtual devices using the Kubernetes Network Emulation binding.

First, follow the steps for deploying a KNE cluster. Then follow the per-vendor instructions below for creating a KNE topology and running a test on it.

Arista

cEOS

Arista cEOS images can be obtained by contacting Arista.

  1. Create the topology:
kne create topologies/kne/arista/ceos/topology.textproto
  1. Run a sample test:
go test ./feature/example/tests/... -kne-topo $PWD/topologies/kne/arista/ceos/topology.textproto -vendor_creds ARISTA/admin/admin
  1. Cleanup:
kne delete topologies/kne/arista/ceos/topology.textproto

Cisco

8000e

NOTE: 8000e images require the host supports nested virtualization.

Cisco 8000e images can be obtained by contacting Cisco.

  1. Create the topology:
kne create topologies/kne/cisco/8000e/topology.textproto
  1. Run a sample test:
go test ./feature/example/tests/... -kne-topo $PWD/topologies/kne/cisco/8000e/topology.textproto -vendor_creds CISCO/cisco/cisco123
  1. Cleanup:
kne delete topologies/kne/cisco/8000e/topology.textproto

XRD

Cisco XRD images can be obtained by contacting Cisco.

  1. Create the topology:
kne create topologies/kne/cisco/xrd/topology.textproto
  1. Run a sample test:
go test ./feature/example/tests/... -kne-topo $PWD/topologies/kne/cisco/xrd/topology.textproto -vendor_creds CISCO/cisco/cisco123
  1. Cleanup:
kne delete topologies/kne/cisco/xrd/topology.textproto

Juniper

ncPTX

Juniper ncPTX images can be obtained by contacting Juniper.

  1. Create the topology:
kne create topologies/kne/juniper/ncptx/topology.textproto
  1. Run a sample test:
go test ./feature/example/tests/... -kne-topo $PWD/topologies/kne/juniper/ncptx/topology.textproto -vendor_creds JUNIPER/root/Google123
  1. Cleanup:
kne delete topologies/kne/juniper/ncptx/topology.textproto

Nokia

SR Linux

SR Linux images can be found here.

  1. Create the topology:
kne create topologies/kne/nokia/srlinux/topology.textproto
  1. Run a sample test:
go test ./feature/example/tests/... -kne-topo $PWD/topologies/kne/nokia/srlinux/topology.textproto -vendor_creds NOKIA/admin/admin
  1. Cleanup:
kne delete topologies/kne/nokia/srlinux/topology.textproto

Running Tests on Real Hardware

Tests may be run on real hardware devices using the static binding.

The static binding supports the testbeds in the topologies/*.testbed files. The mapping between the IDs in the testbed file and the physical devices are provided by the corresponding topologies/*.binding files. To try it out, edit otgdut_4.binding to specify the mapping from testbed IDs to actual hardware devices, as well as the desired protocol dial options. Then test it by running:

go test ./feature/example/tests/topology_test -binding $PWD/topologies/otgdut_4.binding

Path validation

The make validate_paths target will clone the public OpenConfig definitions and report Feature Profiles that have invalid OpenConfig paths.

openconfig-featureprofiles's People

Contributors

ankur19 avatar sezhang2 avatar greg-dennis avatar bstoll avatar liulk avatar octpetre avatar prinikasn avatar dplore avatar self-maurya avatar trathod1 avatar cprabha avatar mojiiba avatar jasdeep-hundal avatar anish-gottapu avatar wenovus avatar marccharlebois avatar limehat avatar xw-g avatar saarvind6481 avatar arvbaska1 avatar nsadhasivam avatar stthummuri avatar hobbydos avatar mohanasm avatar robshakir avatar prakashbadri-arista avatar rszarecki avatar rohit-rp avatar sachendras avatar hariramnat avatar

Stargazers

steve ulrich avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.