deviations

package
v0.0.0-...-e8efe0d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 28, 2025 License: Apache-2.0 Imports: 7 Imported by: 0

README

Guidelines to add deviations to FNT tests

When to use deviations

  1. Deviations may be created to use alternate OC or use CLI instead of OC to achieve the operational intent described in the README.
  2. Deviations should not be created which change the operational intent. See below for guidance on changing operational intent.
  3. Deviations may be created to change which OC path is used for telemetry or use an implementation's native yang path.  Deviations for telemetry should not introduce a depedency on CLI output.
  4. As with any pull request (PR), the CODEOWNERs must review and approve (or delegate if appropriate).
  5. The CODEOWNERs must ensure the README and code reflects the agreed to operational support goal.  This may be done via offline discussions or directly via approvals in the github PR.

See Deviation Examples for more information.

When not to use a deviation

Deviations should not be used to skip configuration or skip validations. If the feature is not supported and there is no workaround to achieve the functionality, then the test should fail for that platform.

If the README is in error, the README can be updated and code can be changed (without introducing deviation) with approval from the CODEOWNERs.

If the intent of the README needs to be changed (not due to an error, but a change in the feature request), the CODEOWNER must ensure all parties are notified. The CODEOWNER must determine if the change is late or early in the development cycle. If late (development is underway and/or nearly complete), it is recommended to create a new test which represents the change. If early in the feature request (development has not started or is very early stage), then the existing README and code may be updated.

Adding Deviations

  message Deviations {
    ...
    // Device does not support fragmentation bit for traceroute.
    bool traceroute_fragmentation = 2;
    ...
  }
  • Run make proto/metadata_go_proto/metadata.pb.go from your featureprofiles root directory to generate the Go code for the added proto fields.
  $ make proto/metadata_go_proto/metadata.pb.go
  mkdir -p proto/metadata_go_proto
  # Set directory to hold symlink
  mkdir -p protobuf-import
  # Remove any existing symlinks & empty directories
  find protobuf-import -type l -delete
  find protobuf-import -type d -empty -delete
  # Download the required dependencies
  go mod download
  # Get ondatra modules we use and create required directory structure
  go list -f 'protobuf-import/{{ .Path }}' -m github.com/openconfig/ondatra | xargs -L1 dirname | sort | uniq | xargs mkdir -p
  go list -f '{{ .Dir }} protobuf-import/{{ .Path }}' -m github.com/openconfig/ondatra | xargs -L1 -- ln -s
  protoc -I='protobuf-import' --proto_path=proto --go_out=./ --go_opt=Mmetadata.proto=proto/metadata_go_proto metadata.proto
  goimports -w proto/metadata_go_proto/metadata.pb.go
  • Add the accessor function for this deviation to the internal/deviations/deviations.go file. This function will need to accept a parameter dut of type *ondatra.DUTDevice to lookup the deviation value for a specific dut. This accessor function must call lookupDUTDeviations and return the deviation value. Test code will use this function to access deviations.

    • If the default value of the deviation is the same as the default value for the proto field, the accessor method can directly call the Get*() function for the deviation field. For example, the boolean traceroute_fragmentation deviation, which has a default value of false, will have an accessor method with the single line return lookupDUTDeviations(dut).GetTracerouteFragmentation().
     // TraceRouteFragmentation returns if the device does not support fragmentation bit for traceroute.
     // Default value is false.
     func TraceRouteFragmentation(dut *ondatra.DUTDevice) bool {
       return lookupDUTDeviations(dut).GetTracerouteFragmentation()
     }
    
    • If the default value of deviation is not the same as the default value of the proto field, the accessor method can add a check and return the required default value. For example, the accessor method for the float hierarchical_weight_resolution_tolerance deviation, which has a default value of 0, will call the GetHierarchicalWeightResolutionTolerance() to check the value set in metadata.textproto and return the default value 0.2 if applicable.
    // HierarchicalWeightResolutionTolerance returns the allowed tolerance for BGP traffic flow while comparing for pass or fail conditions.
    // Default minimum value is 0.2. Anything less than 0.2 will be set to 0.2.
    func HierarchicalWeightResolutionTolerance(dut *ondatra.DUTDevice) float64 {
      hwrt := lookupDUTDeviations(dut).GetHierarchicalWeightResolutionTolerance()
      if minHWRT := 0.2; hwrt < minHWRT {
           return minHWRT
      }
      return hwrt
    }
    
  • Set the deviation value in the metadata.textproto file in the same folder as the test. For example, the deviations used in the test feature/gnoi/system/tests/traceroute_test/traceroute_test.go will be set in the file feature/gnoi/system/tests/traceroute_test/metadata.textproto. List all the vendor and optionally also hardware model regex that this deviation is applicable for.

    ...
    platform_exceptions: {
      platform: {
        vendor: CISCO
      }
      deviations: {
        traceroute_fragmentation: true
        traceroute_l4_protocol_udp: true
      }
    }
    ...
    
  • To access the deviation from the test call the accessor function for the deviation. Pass the dut to this accessor.

    if deviations.TraceRouteFragmentation(dut) {
      ...
    }
    
  • Example PRs - https://github.com/openconfig/featureprofiles/pull/1649 and https://github.com/openconfig/featureprofiles/pull/1668

Removing Deviations

  • Once a deviation is no longer required and removed from all tests, delete the deviation by removing them from the following files:

  • Run make proto/metadata_go_proto/metadata.pb.go from your featureprofiles root directory to update the Go code for the removed proto fields.

Deviation examples

conf := configureDUT(dut) // returns *oc.Root

if deviations.AlternateOCEnabled(t, dut) {
    switch dut.Vendor() {
    case ondatra.VENDOR_X:
      conf.SetAlternateOC(val)
    }
} else {
    conf.SetRequiredOC(val)
}
conf := configureDUT(dut) // returns *oc.Root

if deviations.RequiredOCNotSupported(t, dut) {
    switch dut.Vendor() {
    case ondatra.VENDOR_X:
        configureDeviceUsingCli(t, dut, vendorXConfig)
    }
}

Notes

  • If you run into issues with the make proto/metadata_go_proto/metadata.pb.go you may need to check if the protoc module is installed in your environment. Also depending on your Go version you may need to update your PATH and GOPATH.
  • After running the make proto/metadata_go_proto/metadata.pb.go script, a protobuf-import/ folder will be added in your current directory. Keep an eye out for this in case you use git add . to add modified files since this folder should not be part of your PR.

Documentation

Overview

Package deviations defines the arguments to enable temporary workarounds for the featureprofiles test suite using command line flags.

If we consider device compliance level in tiers:

  • Tier 0: Full OpenConfig compliance. The device can do everything specified by OpenConfig.
  • Tier 1: Test plan compliance. The device can pass a test without deviation, which means it satisfies the test requirements. This is the target compliance tier for featureprofiles tests.
  • Tier 2: Deviated test plan compliance. The device can pass a test with deviation.

Deviations typically work by reducing testing requirements or by changing the way the configuration is done. However, the targeted compliance tier is always without deviation.

Requirements for deviations:

  • Deviations may only use OpenConfig compliant behavior.
  • Deviations should be small in scope, typically affecting one subtest, one OpenConfig path or small OpenConfig subtree.

If a device could not pass without deviation, that is considered non-compliant behavior. Ideally, a device should pass both with and without a deviation which means the deviation could be safely removed. However, when the OpenConfig model allows the device to reject the deviated case even if it is compliant, then this should be explained on a case-by-case basis.

To add, remove and enable deviations follow the guidelines at deviations/README.md

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ATEIPv6FlowLabelUnsupported

func ATEIPv6FlowLabelUnsupported(ate *ondatra.ATEDevice) bool

ATEIPv6FlowLabelUnsupported returns true for traffic generators that do not support IPv6 flow labels

func ATEPortLinkStateOperationsUnsupported

func ATEPortLinkStateOperationsUnsupported(ate *ondatra.ATEDevice) bool

ATEPortLinkStateOperationsUnsupported returns true for traffic generators that do not support port link state control operations (such as port shutdown.)

func AddMissingBaseConfigViaCli

func AddMissingBaseConfigViaCli(dut *ondatra.DUTDevice) bool

AddMissingBaseConfigViaCli returns true if missing base config needs to be added using CLI. Cisco: https://partnerissuetracker.corp.google.com/issues/322291556

func AggregateAtomicUpdate

func AggregateAtomicUpdate(dut *ondatra.DUTDevice) bool

AggregateAtomicUpdate returns if device requires that aggregate Port-Channel and its members be defined in a single gNMI Update transaction at /interfaces, Otherwise lag-type will be dropped, and no member can be added to the aggregate. Full OpenConfig compliant devices should pass both with and without this deviation.

func BGPConditionsMatchCommunitySetUnsupported

func BGPConditionsMatchCommunitySetUnsupported(dut *ondatra.DUTDevice) bool

BGPConditionsMatchCommunitySetUnsupported returns true if device doesn't support bgp-conditions/match-community-set leaf

func BGPExplicitPrefixLimitReceived

func BGPExplicitPrefixLimitReceived(dut *ondatra.DUTDevice) bool

BGPExplicitPrefixLimitReceived returns if device must specify the received prefix limits explicitly under the "prefix-limit-received" field rather than simply "prefix-limit".

func BGPGlobalExtendedNextHopEncodingUnsupported

func BGPGlobalExtendedNextHopEncodingUnsupported(dut *ondatra.DUTDevice) bool

BGPGlobalExtendedNextHopEncodingUnsupported returns true for devices that do not support configuring BGP ExtendedNextHopEncoding at the global level.

func BGPMD5RequiresReset

func BGPMD5RequiresReset(dut *ondatra.DUTDevice) bool

BGPMD5RequiresReset returns if device requires a BGP session reset to utilize a new MD5 key.

func BGPMissingOCMaxPrefixesConfiguration

func BGPMissingOCMaxPrefixesConfiguration(dut *ondatra.DUTDevice) bool

BGPMissingOCMaxPrefixesConfiguration returns true for devices that does not configure BGP maximum routes correctly when max-prefixes OC leaf is configured.

func BGPRibOcPathUnsupported

func BGPRibOcPathUnsupported(dut *ondatra.DUTDevice) bool

BGPRibOcPathUnsupported returns true if BGP RIB OC telemetry path is not supported.

func BGPSetMedRequiresEqualOspfSetMetric

func BGPSetMedRequiresEqualOspfSetMetric(dut *ondatra.DUTDevice) bool

BGPSetMedRequiresEqualOspfSetMetric returns true for devices that require configuring the same OSPF setMetric when BGP SetMED is configured.

func BGPTrafficTolerance

func BGPTrafficTolerance(dut *ondatra.DUTDevice) int32

BGPTrafficTolerance returns the allowed tolerance for BGP traffic flow while comparing for pass or fail conditions.

func BackplaneFacingCapacityUnsupported

func BackplaneFacingCapacityUnsupported(dut *ondatra.DUTDevice) bool

BackplaneFacingCapacityUnsupported returns whether the device supports backplane-facing-capacity leaves for some components.

func BackupNHGRequiresVrfWithDecap

func BackupNHGRequiresVrfWithDecap(dut *ondatra.DUTDevice) bool

BackupNHGRequiresVrfWithDecap returns true for devices that require IPOverIP Decapsulation for Backup NHG without interfaces.

func BannerDelimiter

func BannerDelimiter(dut *ondatra.DUTDevice) string

BannerDelimiter returns if device requires the banner to have a delimiter character. Full OpenConfig compliant devices should work without delimiter.

func BgpActionsSetCommunityMethodUnsupported

func BgpActionsSetCommunityMethodUnsupported(dut *ondatra.DUTDevice) bool

BgpActionsSetCommunityMethodUnsupported return true if BGP actions set-community method is unsupported

func BgpAfiSafiInDefaultNiBeforeOtherNi

func BgpAfiSafiInDefaultNiBeforeOtherNi(dut *ondatra.DUTDevice) bool

BgpAfiSafiInDefaultNiBeforeOtherNi returns true if certain AFI SAFIs are configured in default network instance before other network instances

func BgpAfiSafiWildcardNotSupported

func BgpAfiSafiWildcardNotSupported(dut *ondatra.DUTDevice) bool

BgpAfiSafiWildcardNotSupported return true if bgp afi/safi wildcard query is not supported. For example, this yang path query includes the wildcard key `afi-safi-name=`: `/network-instances/network-instance[name=DEFAULT]/protocols/protocol[identifier=BGP][name=BGP]/bgp/neighbors/neighbor[neighbor-address=192.0.2.2]/afi-safis/afi-safi[afi-safi-name=]`. Use of this deviation is permitted if a query using an explicit key is supported (such as `oc.BgpTypes_AFI_SAFI_TYPE_IPV4_UNICAST`).

func BgpAllowownasDiffDefaultValue

func BgpAllowownasDiffDefaultValue(dut *ondatra.DUTDevice) bool

BgpAllowownasDiffDefaultValue permits a device to have a different default value for allow own as.

func BgpCommunityMemberIsAString

func BgpCommunityMemberIsAString(dut *ondatra.DUTDevice) bool

BgpCommunityMemberIsAString returns true if device community member is not a list

func BgpCommunitySetRefsUnsupported

func BgpCommunitySetRefsUnsupported(dut *ondatra.DUTDevice) bool

BgpCommunitySetRefsUnsupported return true if BGP community set refs is not supported.

func BgpDefaultPolicyUnsupported

func BgpDefaultPolicyUnsupported(dut *ondatra.DUTDevice) bool

BgpDefaultPolicyUnsupported return true if BGP default-import/export-policy is not supported.

func BgpDeleteLinkBandwidthUnsupported

func BgpDeleteLinkBandwidthUnsupported(dut *ondatra.DUTDevice) bool

BgpDeleteLinkBandwidthUnsupported returns true if bgp delete link bandwidth is unsupported

func BgpExplicitExtendedCommunityEnable

func BgpExplicitExtendedCommunityEnable(dut *ondatra.DUTDevice) bool

BgpExplicitExtendedCommunityEnable returns true if explicit extended community enable is needed

func BgpExtendedCommunityIndexUnsupported

func BgpExtendedCommunityIndexUnsupported(dut *ondatra.DUTDevice) bool

BgpExtendedCommunityIndexUnsupported return true if BGP extended community index is not supported.

func BgpExtendedCommunitySetUnsupported

func BgpExtendedCommunitySetUnsupported(dut *ondatra.DUTDevice) bool

BgpExtendedCommunitySetUnsupported returns true if set bgp extended community is unsupported

func BgpExtendedNextHopEncodingLeafUnsupported

func BgpExtendedNextHopEncodingLeafUnsupported(dut *ondatra.DUTDevice) bool

BgpExtendedNextHopEncodingLeafUnsupported return true if bgp extended next hop encoding leaf is unsupported Cisco supports the extended nexthop encoding set to true by default that is exercised in the Script where the extended-nexthop-encoding a bool value is set to true.

func BgpLlgrOcUndefined

func BgpLlgrOcUndefined(dut *ondatra.DUTDevice) bool

BgpLlgrOcUndefined returns true if device does not support OC path to disable BGP LLGR.

func BgpMaxMultipathPathsUnsupported

func BgpMaxMultipathPathsUnsupported(dut *ondatra.DUTDevice) bool

BgpMaxMultipathPathsUnsupported returns true if the device does not support bgp max multipaths.

func BgpPrefixsetReqRoutepolRef

func BgpPrefixsetReqRoutepolRef(dut *ondatra.DUTDevice) bool

Devices needs route policy reference to stream prefix set info.

func BgpSessionStateIdleInPassiveMode

func BgpSessionStateIdleInPassiveMode(dut *ondatra.DUTDevice) bool

BgpSessionStateIdleInPassiveMode returns true if BGP session state idle is not supported instead of active in passive mode.

func BgpSetExtCommunitySetRefsUnsupported

func BgpSetExtCommunitySetRefsUnsupported(dut *ondatra.DUTDevice) bool

BgpSetExtCommunitySetRefsUnsupported returns true if bgp set ext community refs is unsupported

func BgpSetMedV7Unsupported

func BgpSetMedV7Unsupported(dut *ondatra.DUTDevice) bool

BgpSetMedV7Unsupported returns true if devices which are not supporting bgp set med union type in OC.

func CLITakesPrecedenceOverOC

func CLITakesPrecedenceOverOC(dut *ondatra.DUTDevice) bool

CLITakesPrecedenceOverOC returns whether config pushed through origin CLI takes precedence over config pushed through origin OC.

func CPUMissingAncestor

func CPUMissingAncestor(dut *ondatra.DUTDevice) bool

CPUMissingAncestor deviation set to true for devices where the CPU components do not map to a FRU parent component in the OC tree.

func ChannelRateClassParametersUnsupported

func ChannelRateClassParametersUnsupported(dut *ondatra.DUTDevice) bool

ChannelRateClassParametersUnsupported returns true if channel rate class parameters are unsupported

func ChassisGetRPCUnsupported

func ChassisGetRPCUnsupported(dut *ondatra.DUTDevice) bool

ChassisGetRPCUnsupported returns true if a Healthz Get RPC against the Chassis component is unsupported

func CiscoPreFECBERInactiveValue

func CiscoPreFECBERInactiveValue(dut *ondatra.DUTDevice) bool

CiscoPreFECBERInactiveValue returns true if a non-zero pre-fec-ber value is to be used for Cisco

func CommunityInvertAnyUnsupported

func CommunityInvertAnyUnsupported(dut *ondatra.DUTDevice) bool

CommunityInvertAnyUnsupported returns true when device does not support community invert any.

func CommunityMatchWithRedistributionUnsupported

func CommunityMatchWithRedistributionUnsupported(dut *ondatra.DUTDevice) bool

CommunityMatchWithRedistributionUnsupported is set to true for devices that do not support matching community at the redistribution attach point.

func CommunityMemberRegexUnsupported

func CommunityMemberRegexUnsupported(dut *ondatra.DUTDevice) bool

CommunityMemberRegexUnsupported return true if device do not support community member regex

func ComponentMfgDateUnsupported

func ComponentMfgDateUnsupported(dut *ondatra.DUTDevice) bool

ComponentMfgDateUnsupported returns true if component's mfg-date leaf is unsupported

func ConnectRetry

func ConnectRetry(dut *ondatra.DUTDevice) bool

ConnectRetry returns if /bgp/neighbors/neighbor/timers/config/connect-retry is not supported.

func ConsistentComponentNamesUnsupported

func ConsistentComponentNamesUnsupported(dut *ondatra.DUTDevice) bool

ConsistentComponentNamesUnsupported returns if the device does not support consistent component names for GNOI and GNMI. Default value is false.

func ControllerCardCPUUtilizationUnsupported

func ControllerCardCPUUtilizationUnsupported(dut *ondatra.DUTDevice) bool

ControllerCardCPUUtilizationUnsupported returns if the device does not support telemetry path /components/component/cpu/utilization/state/avg for controller cards' CPU card. Default value is false.

func DecapNHWithNextHopNIUnsupported

func DecapNHWithNextHopNIUnsupported(dut *ondatra.DUTDevice) bool

DecapNHWithNextHopNIUnsupported returns true if Decap NH with NextHopNetworkInstance is unsupported

func DefaultBgpInstanceName

func DefaultBgpInstanceName(dut *ondatra.DUTDevice) string

DefaultBgpInstanceName returns bgp instance name as set in deviation to override default value "DEFAULT"

func DefaultImportExportPolicyUnsupported

func DefaultImportExportPolicyUnsupported(dut *ondatra.DUTDevice) bool

DefaultImportExportPolicyUnsupported returns true when device does not support default import export policy.

func DefaultNetworkInstance

func DefaultNetworkInstance(dut *ondatra.DUTDevice) string

DefaultNetworkInstance returns the name used for the default network instance for VRF.

func DefaultRoutePolicyUnsupported

func DefaultRoutePolicyUnsupported(dut *ondatra.DUTDevice) bool

DefaultRoutePolicyUnsupported returns true if default route policy is not supported

func DeprecatedVlanID

func DeprecatedVlanID(dut *ondatra.DUTDevice) bool

DeprecatedVlanID returns if device requires using the deprecated openconfig-vlan:vlan/config/vlan-id or openconfig-vlan:vlan/state/vlan-id leaves.

func DequeueDeleteNotCountedAsDrops

func DequeueDeleteNotCountedAsDrops(dut *ondatra.DUTDevice) bool

DequeueDeleteNotCountedAsDrops returns if device dequeues and deletes the pkts after a while and those are not counted as drops

func DropWeightLeavesUnsupported

func DropWeightLeavesUnsupported(dut *ondatra.DUTDevice) bool

DropWeightLeavesUnsupported returns whether the device supports drop and weight leaves under queue management profile.

func ECNProfileRequiredDefinition

func ECNProfileRequiredDefinition(dut *ondatra.DUTDevice) bool

ECNProfileRequiredDefinition returns whether the device requires additional config for ECN.

func EcnSameMinMaxThresholdUnsupported

func EcnSameMinMaxThresholdUnsupported(dut *ondatra.DUTDevice) bool

EcnSameMinMaxThresholdUnsupported returns true for devices that don't support the same minimum and maximum threshold values CISCO: minimum and maximum threshold values are not the same, the difference between minimum and maximum threshold value should be 6144.

func EnableMultipathUnderAfiSafi

func EnableMultipathUnderAfiSafi(dut *ondatra.DUTDevice) bool

EnableMultipathUnderAfiSafi returns true for devices that do not support multipath under /global path and instead support under global/afi/safi path.

func EnableTableConnections

func EnableTableConnections(dut *ondatra.DUTDevice) bool

EnableTableConnections returns true if admin state of tableconnections needs to be enabled in SRL native model

func EncapTunnelShutBackupNhgZeroTraffic

func EncapTunnelShutBackupNhgZeroTraffic(dut *ondatra.DUTDevice) bool

EncapTunnelShutBackupNhgZeroTraffic returns true when encap tunnel is shut then zero traffic flows to back-up NHG

func EthChannelAssignmentCiscoNumbering

func EthChannelAssignmentCiscoNumbering(dut *ondatra.DUTDevice) bool

EthChannelAssignmentCiscoNumbering returns true if eth channel assignment index starts from 1 instead of 0

func EthChannelIngressParametersUnsupported

func EthChannelIngressParametersUnsupported(dut *ondatra.DUTDevice) bool

EthChannelIngressParametersUnsupported returns true if ingress parameters are unsupported under ETH channel configuration

func ExplicitEnableBGPOnDefaultVRF

func ExplicitEnableBGPOnDefaultVRF(dut *ondatra.DUTDevice) bool

ExplicitEnableBGPOnDefaultVRF return true if BGP needs to be explicitly enabled on default VRF

func ExplicitIPv6EnableForGRIBI

func ExplicitIPv6EnableForGRIBI(dut *ondatra.DUTDevice) bool

ExplicitIPv6EnableForGRIBI returns if device requires Ipv6 to be enabled on interface for gRIBI NH programmed with destination mac address.

func ExplicitInterfaceInDefaultVRF

func ExplicitInterfaceInDefaultVRF(dut *ondatra.DUTDevice) bool

ExplicitInterfaceInDefaultVRF returns if device requires explicit attachment of an interface or subinterface to the default network instance. OpenConfig expects an unattached interface or subinterface to be implicitly part of the default network instance. Fully-compliant devices should pass with and without this deviation.

func ExplicitInterfaceRefDefinition

func ExplicitInterfaceRefDefinition(dut *ondatra.DUTDevice) bool

ExplicitInterfaceRefDefinition returns if device requires explicit interface ref configuration when applying features to interface.

func ExplicitPortSpeed

func ExplicitPortSpeed(dut *ondatra.DUTDevice) bool

ExplicitPortSpeed returns if device requires port-speed to be set because its default value may not be usable. Fully compliant devices selects the highest speed available based on negotiation.

func FabricDropCounterUnsupported

func FabricDropCounterUnsupported(dut *ondatra.DUTDevice) bool

FabricDropCounterUnsupported returns if the device does not support counter for fabric block lost packets. Default value is false.

func FlattenPolicyWithMultipleStatements

func FlattenPolicyWithMultipleStatements(dut *ondatra.DUTDevice) bool

FlattenPolicyWithMultipleStatements return true if devices does not support policy-chaining

func FragmentTotalDropsUnsupported

func FragmentTotalDropsUnsupported(dut *ondatra.DUTDevice) bool

FragmentTotalDropsUnsupported returns true if the device does not support fragment total drops.

func GNMIGetOnRootUnsupported

func GNMIGetOnRootUnsupported(dut *ondatra.DUTDevice) bool

GNMIGetOnRootUnsupported returns true if the device does not support gNMI get on root.

func GNOIFabricComponentRebootUnsupported

func GNOIFabricComponentRebootUnsupported(dut *ondatra.DUTDevice) bool

GNOIFabricComponentRebootUnsupported returns if device does not support use using gNOI to reboot the Fabric Component.

func GNOIStatusWithEmptySubcomponent

func GNOIStatusWithEmptySubcomponent(dut *ondatra.DUTDevice) bool

GNOIStatusWithEmptySubcomponent returns if the response of gNOI reboot status is a single value (not a list), the device requires explicit component path to account for a situation when there is more than one active reboot requests.

func GNOISubcomponentPath

func GNOISubcomponentPath(dut *ondatra.DUTDevice) bool

GNOISubcomponentPath returns if device currently uses component name instead of a full openconfig path.

func GNOISubcomponentRebootStatusUnsupported

func GNOISubcomponentRebootStatusUnsupported(dut *ondatra.DUTDevice) bool

GNOISubcomponentRebootStatusUnsupported returns true for devices that do not support subcomponent reboot status check.

func GNOISwitchoverReasonMissingUserInitiated

func GNOISwitchoverReasonMissingUserInitiated(dut *ondatra.DUTDevice) bool

GNOISwitchoverReasonMissingUserInitiated returns true for devices that don't report last-switchover-reason as USER_INITIATED for gNOI.SwitchControlProcessor.

func GRIBIMACOverrideStaticARPStaticRoute

func GRIBIMACOverrideStaticARPStaticRoute(dut *ondatra.DUTDevice) bool

GRIBIMACOverrideStaticARPStaticRoute returns whether the device needs to configure Static ARP + Static Route to override setting MAC address in Next Hop.

func GRIBIMACOverrideWithStaticARP

func GRIBIMACOverrideWithStaticARP(dut *ondatra.DUTDevice) bool

GRIBIMACOverrideWithStaticARP returns whether for a gRIBI IPv4 route the device does not support a mac-address only next-hop-entry.

func GRIBIRIBAckOnly

func GRIBIRIBAckOnly(dut *ondatra.DUTDevice) bool

GRIBIRIBAckOnly returns if device only supports RIB ack, so tests that normally expect FIB_ACK will allow just RIB_ACK. Full gRIBI compliant devices should pass both with and without this deviation.

func GRIBISkipFIBFailedTrafficForwardingCheck

func GRIBISkipFIBFailedTrafficForwardingCheck(dut *ondatra.DUTDevice) bool

GRIBISkipFIBFailedTrafficForwardingCheck returns true for devices that do not support fib forwarding for fib failed routes.

func GribiDecapMixedPlenUnsupported

func GribiDecapMixedPlenUnsupported(dut *ondatra.DUTDevice) bool

GribiDecapMixedPlenUnsupported returns true if devices does not support programming with mixed prefix length.

func GribiEncapHeaderUnsupported

func GribiEncapHeaderUnsupported(dut *ondatra.DUTDevice) bool

GribiEncapHeaderUnsupported returns true if gribi encap header is unsupported

func HierarchicalWeightResolutionTolerance

func HierarchicalWeightResolutionTolerance(dut *ondatra.DUTDevice) float64

HierarchicalWeightResolutionTolerance returns the allowed tolerance for BGP traffic flow while comparing for pass or fail conditions. Default minimum value is 0.2. Anything less than 0.2 will be set to 0.2.

func IPNeighborMissing

func IPNeighborMissing(dut *ondatra.DUTDevice) bool

IPNeighborMissing returns true if the device does not support interface/ipv4(6)/neighbor, so test can suppress the related check for interface/ipv4(6)/neighbor.

func IPv4MissingEnabled

func IPv4MissingEnabled(dut *ondatra.DUTDevice) bool

IPv4MissingEnabled returns if device does not support interface/ipv4/enabled.

func IPv4StaticRouteWithIPv6NextHopUnsupported

func IPv4StaticRouteWithIPv6NextHopUnsupported(dut *ondatra.DUTDevice) bool

IPv4StaticRouteWithIPv6NextHopUnsupported unsupported ipv4 with ipv6 nexthop

func IPv6StaticRouteWithIPv4NextHopRequiresStaticARP

func IPv6StaticRouteWithIPv4NextHopRequiresStaticARP(dut *ondatra.DUTDevice) bool

IPv6StaticRouteWithIPv4NextHopRequiresStaticARP returns true if devices don't support having an IPv6 static Route with an IPv4 address as next hop and requires configuring a static ARP entry. Arista: https://partnerissuetracker.corp.google.com/issues/316593298

func IPv6StaticRouteWithIPv4NextHopUnsupported

func IPv6StaticRouteWithIPv4NextHopUnsupported(dut *ondatra.DUTDevice) bool

IPv6StaticRouteWithIPv4NextHopUnsupported unsupported ipv6 with ipv4 nexthop

func ISISCounterManualAddressDropFromAreasUnsupported

func ISISCounterManualAddressDropFromAreasUnsupported(dut *ondatra.DUTDevice) bool

ISISCounterManualAddressDropFromAreasUnsupported returns true for devices that do not support telemetry for isis system-level-counter manual-address-drop-from-areas.

func ISISCounterPartChangesUnsupported

func ISISCounterPartChangesUnsupported(dut *ondatra.DUTDevice) bool

ISISCounterPartChangesUnsupported returns true for devices that do not support telemetry for isis system-level-counter part-changes.

func ISISExplicitLevelAuthenticationConfig

func ISISExplicitLevelAuthenticationConfig(dut *ondatra.DUTDevice) bool

ISISExplicitLevelAuthenticationConfig returns true if ISIS Explicit Level Authentication configuration is required

func ISISGlobalAuthenticationNotRequired

func ISISGlobalAuthenticationNotRequired(dut *ondatra.DUTDevice) bool

ISISGlobalAuthenticationNotRequired returns true if ISIS Global authentication not required.

func ISISInstanceEnabledRequired

func ISISInstanceEnabledRequired(dut *ondatra.DUTDevice) bool

ISISInstanceEnabledRequired returns if isis instance name string should be set on the device.

func ISISInterfaceAfiUnsupported

func ISISInterfaceAfiUnsupported(dut *ondatra.DUTDevice) bool

ISISInterfaceAfiUnsupported returns true for devices that don't support configuring ISIS /afi-safi/af/config container.

func ISISInterfaceLevel1DisableRequired

func ISISInterfaceLevel1DisableRequired(dut *ondatra.DUTDevice) bool

ISISInterfaceLevel1DisableRequired returns if device should disable isis level1 under interface mode.

func ISISLevelEnabled

func ISISLevelEnabled(dut *ondatra.DUTDevice) bool

ISISLevelEnabled returns if device should enable isis under level.

func ISISLoopbackRequired

func ISISLoopbackRequired(dut *ondatra.DUTDevice) bool

ISISLoopbackRequired returns true if isis loopback is required.

func ISISLspMetadataLeafsUnsupported

func ISISLspMetadataLeafsUnsupported(dut *ondatra.DUTDevice) bool

ISISLspMetadataLeafsUnsupported returns true for devices that don't support ISIS-Lsp metadata paths: checksum, sequence-number, remaining-lifetime.

func ISISMetricStyleTelemetryUnsupported

func ISISMetricStyleTelemetryUnsupported(dut *ondatra.DUTDevice) bool

ISISMetricStyleTelemetryUnsupported returns true for devices that do not support state path /network-instances/network-instance/protocols/protocol/isis/levels/level/state/metric-style

func ISISMultiTopologyUnsupported

func ISISMultiTopologyUnsupported(dut *ondatra.DUTDevice) bool

ISISMultiTopologyUnsupported returns if device skips isis multi-topology check.

func ISISRequireSameL1MetricWithL2Metric

func ISISRequireSameL1MetricWithL2Metric(dut *ondatra.DUTDevice) bool

ISISRequireSameL1MetricWithL2Metric returns true for devices that require configuring the same ISIS Metrics for Level 1 when configuring Level 2 Metrics.

func ISISRestartSuppressUnsupported

func ISISRestartSuppressUnsupported(dut *ondatra.DUTDevice) bool

ISISRestartSuppressUnsupported returns whether the device should skip isis restart-suppress check.

func ISISSingleTopologyRequired

func ISISSingleTopologyRequired(dut *ondatra.DUTDevice) bool

ISISSingleTopologyRequired sets isis af ipv6 single topology on the device if value is true.

func ISISTimersCsnpIntervalUnsupported

func ISISTimersCsnpIntervalUnsupported(dut *ondatra.DUTDevice) bool

ISISTimersCsnpIntervalUnsupported returns true for devices that do not support configuring csnp-interval timer for ISIS.

func InstallOSForStandbyRP

func InstallOSForStandbyRP(dut *ondatra.DUTDevice) bool

InstallOSForStandbyRP returns if device requires OS installation on standby RP as well as active RP.

func InstallPositionAndInstallComponentUnsupported

func InstallPositionAndInstallComponentUnsupported(dut *ondatra.DUTDevice) bool

InstallPositionAndInstallComponentUnsupported returns true if install position and install component are not supported.

func InterfaceConfigVRFBeforeAddress

func InterfaceConfigVRFBeforeAddress(dut *ondatra.DUTDevice) bool

InterfaceConfigVRFBeforeAddress returns if vrf should be configured before IP address when configuring interface.

func InterfaceCountersFromContainer

func InterfaceCountersFromContainer(dut *ondatra.DUTDevice) bool

InterfaceCountersFromContainer returns if the device only supports querying counters from the state container, not from individual counter leaves.

func InterfaceCountersUpdateDelayed

func InterfaceCountersUpdateDelayed(dut *ondatra.DUTDevice) bool

InterfaceCountersUpdateDelayed returns true if telemetry for interface counters does not return the latest counter values.

func InterfaceEnabled

func InterfaceEnabled(dut *ondatra.DUTDevice) bool

InterfaceEnabled returns if device requires interface enabled leaf booleans to be explicitly set to true.

func InterfaceLoopbackModeRawGnmi

func InterfaceLoopbackModeRawGnmi(dut *ondatra.DUTDevice) bool

InterfaceLoopbackModeRawGnmi returns true if interface loopback mode needs to be updated using raw gnmi API due to server version. Default value is false.

func InterfaceRefConfigUnsupported

func InterfaceRefConfigUnsupported(dut *ondatra.DUTDevice) bool

InterfaceRefConfigUnsupported deviation set to true for devices that do not support interface-ref configuration when applying features to interface.

func InterfaceRefInterfaceIDFormat

func InterfaceRefInterfaceIDFormat(dut *ondatra.DUTDevice) bool

InterfaceRefInterfaceIDFormat returns if device is required to use interface-id format of interface name + .subinterface index with Interface-ref container

func Ipv6DiscardedPktsUnsupported

func Ipv6DiscardedPktsUnsupported(dut *ondatra.DUTDevice) bool

Ipv6DiscardedPktsUnsupported returns whether the device supports interface ipv6 discarded packet stats.

func Ipv6RouterAdvertisementConfigUnsupported

func Ipv6RouterAdvertisementConfigUnsupported(dut *ondatra.DUTDevice) bool

Ipv6RouterAdvertisementConfigUnsupported returns true for devices which don't support Ipv6 RouterAdvertisement configuration

func Ipv6RouterAdvertisementIntervalUnsupported

func Ipv6RouterAdvertisementIntervalUnsupported(dut *ondatra.DUTDevice) bool

Ipv6RouterAdvertisementIntervalUnsupported returns true for devices which don't support Ipv6 RouterAdvertisement interval configuration

func IsisDatabaseOverloadsUnsupported

func IsisDatabaseOverloadsUnsupported(dut *ondatra.DUTDevice) bool

IsisDatabaseOverloadsUnsupported returns true for devices that do not support database-overloads leaf

func IsisDisSysidUnsupported

func IsisDisSysidUnsupported(dut *ondatra.DUTDevice) bool

IsisDisSysidUnsupported returns true for devices that do not support dis-system-id leaf

func IsisInterfaceLevelPassiveUnsupported

func IsisInterfaceLevelPassiveUnsupported(dut *ondatra.DUTDevice) bool

IsisInterfaceLevelPassiveUnsupported returns true for devices that do not support passive leaf

func LLDPInterfaceConfigOverrideGlobal

func LLDPInterfaceConfigOverrideGlobal(dut *ondatra.DUTDevice) bool

LLDPInterfaceConfigOverrideGlobal returns if LLDP interface config should override the global config, expect neighbours are seen when lldp is disabled globally but enabled on interface

func LinecardCPUUtilizationUnsupported

func LinecardCPUUtilizationUnsupported(dut *ondatra.DUTDevice) bool

LinecardCPUUtilizationUnsupported returns if the device does not support telemetry path /components/component/cpu/utilization/state/avg for linecards' CPU card. Default value is false.

func LinecardMemoryUtilizationUnsupported

func LinecardMemoryUtilizationUnsupported(dut *ondatra.DUTDevice) bool

LinecardMemoryUtilizationUnsupported returns if the device does not support memory utilization related leaves for linecard components. Default value is false.

func LinkLocalMaskLen

func LinkLocalMaskLen(dut *ondatra.DUTDevice) bool

LinkLocalMaskLen returns true if linklocal mask length is not 64

func LinkQualWaitAfterDeleteRequired

func LinkQualWaitAfterDeleteRequired(dut *ondatra.DUTDevice) bool

LinkQualWaitAfterDeleteRequired returns whether the device requires additional time to complete post delete link qualification cleanup.

func MatchTagSetConditionUnsupported

func MatchTagSetConditionUnsupported(dut *ondatra.DUTDevice) bool

MatchTagSetConditionUnsupported returns true if match tag set condition is not supported

func MaxEcmpPaths

func MaxEcmpPaths(dut *ondatra.DUTDevice) bool

MaxEcmpPaths supported for isis max ecmp path

func MemberLinkLoopbackUnsupported

func MemberLinkLoopbackUnsupported(dut *ondatra.DUTDevice) bool

MemberLinkLoopbackUnsupported returns true for devices that require configuring loopback on aggregated links instead of member links.

func MismatchedHardwareResourceNameInComponent

func MismatchedHardwareResourceNameInComponent(dut *ondatra.DUTDevice) bool

MismatchedHardwareResourceNameInComponent returns true for devices that have separate naming conventions for hardware resource name in /system/ tree and /components/ tree.

func MissingBgpLastNotificationErrorCode

func MissingBgpLastNotificationErrorCode(dut *ondatra.DUTDevice) bool

MissingBgpLastNotificationErrorCode returns whether the last-notification-error-code leaf is missing in bgp.

func MissingHardwareResourceTelemetryBeforeConfig

func MissingHardwareResourceTelemetryBeforeConfig(dut *ondatra.DUTDevice) bool

MissingHardwareResourceTelemetryBeforeConfig returns true for devices that don't support telemetry for hardware resources before used-threshold-upper configuration.

func MissingIsisInterfaceAfiSafiEnable

func MissingIsisInterfaceAfiSafiEnable(dut *ondatra.DUTDevice) bool

MissingIsisInterfaceAfiSafiEnable returns if device should set and validate isis interface address family enable. Default is validate isis address family enable at global mode.

func MissingPortToOpticalChannelMapping

func MissingPortToOpticalChannelMapping(dut *ondatra.DUTDevice) bool

MissingPortToOpticalChannelMapping returns true for devices missing component tree mapping from hardware port to optical channel.

func MissingPrePolicyReceivedRoutes

func MissingPrePolicyReceivedRoutes(dut *ondatra.DUTDevice) bool

MissingPrePolicyReceivedRoutes returns if device does not support bgp/neighbors/neighbor/afi-safis/afi-safi/state/prefixes/received-pre-policy. Fully-compliant devices should pass with and without this deviation.

func MissingStaticRouteDropNextHopTelemetry

func MissingStaticRouteDropNextHopTelemetry(dut *ondatra.DUTDevice) bool

MissingStaticRouteDropNextHopTelemetry returns true for devices missing static route telemetry with DROP next hop. Arista: https://partnerissuetracker.corp.google.com/issues/330619816

func MissingStaticRouteNextHopMetricTelemetry

func MissingStaticRouteNextHopMetricTelemetry(dut *ondatra.DUTDevice) bool

MissingStaticRouteNextHopMetricTelemetry returns true for devices missing static route next-hop metric telemetry. Arista: https://partnerissuetracker.corp.google.com/issues/321010782

func MissingValueForDefaults

func MissingValueForDefaults(dut *ondatra.DUTDevice) bool

MissingValueForDefaults returns if device returns no value for some OpenConfig paths if the operational value equals the default.

func MissingZROpticalChannelTunableParametersTelemetry

func MissingZROpticalChannelTunableParametersTelemetry(dut *ondatra.DUTDevice) bool

MissingZROpticalChannelTunableParametersTelemetry returns true for devices missing 400ZR optical-channel tunable parameters telemetry: min/max/avg. Arista: https://partnerissuetracker.corp.google.com/issues/319314781

func ModelNameUnsupported

func ModelNameUnsupported(dut *ondatra.DUTDevice) bool

ModelNameUnsupported returns true if /components/components/state/model-name is not supported for any component type.

func MultipathUnsupportedNeighborOrAfisafi

func MultipathUnsupportedNeighborOrAfisafi(dut *ondatra.DUTDevice) bool

MultipathUnsupportedNeighborOrAfisafi returns true if the device does not support multipath under neighbor or afisafi.

func NetworkInstanceTableDeletionRequired

func NetworkInstanceTableDeletionRequired(dut *ondatra.DUTDevice) bool

NetworkInstanceTableDeletionRequired returns if device requires explicit deletion of network-instance table.

func NoMixOfTaggedAndUntaggedSubinterfaces

func NoMixOfTaggedAndUntaggedSubinterfaces(dut *ondatra.DUTDevice) bool

NoMixOfTaggedAndUntaggedSubinterfaces returns if device does not support a mix of tagged and untagged subinterfaces

func NoZeroSuppression

func NoZeroSuppression(dut *ondatra.DUTDevice) bool

NoZeroSuppression returns true if device wants to remove zero suppression

func NtpNonDefaultVrfUnsupported

func NtpNonDefaultVrfUnsupported(dut *ondatra.DUTDevice) bool

NtpNonDefaultVrfUnsupported returns true if the device does not support ntp non-default vrf. Default value is false.

func OSActivateNoReboot

func OSActivateNoReboot(dut *ondatra.DUTDevice) bool

OSActivateNoReboot returns if device requires separate reboot to activate OS.

func OSComponentParentIsChassis

func OSComponentParentIsChassis(dut *ondatra.DUTDevice) bool

OSComponentParentIsChassis returns true if parent of OS component is of type CHASSIS.

func OSComponentParentIsSupervisorOrLinecard

func OSComponentParentIsSupervisorOrLinecard(dut *ondatra.DUTDevice) bool

OSComponentParentIsSupervisorOrLinecard returns true if parent of OS component is of type SUPERVISOR or LINECARD.

func OTNChannelAssignmentCiscoNumbering

func OTNChannelAssignmentCiscoNumbering(dut *ondatra.DUTDevice) bool

OTNChannelAssignmentCiscoNumbering returns true if OTN channel assignment index starts from 1 instead of 0

func OTNChannelTribUnsupported

func OTNChannelTribUnsupported(dut *ondatra.DUTDevice) bool

OTNChannelTribUnsupported returns true if TRIB parameter is unsupported under OTN channel configuration

func OmitL2MTU

func OmitL2MTU(dut *ondatra.DUTDevice) bool

OmitL2MTU returns if device does not support setting the L2 MTU.

func OperStatusForIcUnsupported

func OperStatusForIcUnsupported(dut *ondatra.DUTDevice) bool

OperStatusForIcUnsupported return true if oper-status leaf is unsupported for Integration Circuit

func OperationalModeUnsupported

func OperationalModeUnsupported(dut *ondatra.DUTDevice) bool

OperationalModeUnsupported returns true if operational-mode leaf is unsupported

func OverrideDefaultNhScale

func OverrideDefaultNhScale(dut *ondatra.DUTDevice) bool

OverrideDefaultNhScale returns true if default NextHop scale needs to be modified else returns false

func P4RTCapabilitiesUnsupported

func P4RTCapabilitiesUnsupported(dut *ondatra.DUTDevice) bool

P4RTCapabilitiesUnsupported returns true for devices that don't support P4RT Capabilities rpc.

func P4RTGdpRequiresDot1QSubinterface

func P4RTGdpRequiresDot1QSubinterface(dut *ondatra.DUTDevice) bool

P4RTGdpRequiresDot1QSubinterface returns true for devices that require configuring subinterface with tagged vlan for P4RT packet in.

func P4RTModifyTableEntryUnsupported

func P4RTModifyTableEntryUnsupported(dut *ondatra.DUTDevice) bool

P4RTModifyTableEntryUnsupported returns true for devices that don't support modify table entry operation in P4 Runtime.

func P4rtBackupArbitrationResponseCode

func P4rtBackupArbitrationResponseCode(dut *ondatra.DUTDevice) bool

P4rtBackupArbitrationResponseCode returns whether the device does not support unset election ID.

func P4rtUnsetElectionIDPrimaryAllowed

func P4rtUnsetElectionIDPrimaryAllowed(dut *ondatra.DUTDevice) bool

P4rtUnsetElectionIDPrimaryAllowed returns whether the device does not support unset election ID.

func PLQGeneratorCapabilitiesMaxMTU

func PLQGeneratorCapabilitiesMaxMTU(dut *ondatra.DUTDevice) uint32

PLQGeneratorCapabilitiesMaxMTU returns supported max_mtu for devices that does not support packet link qualification(PLQ) Generator max_mtu to be at least >= 8184.

func PLQGeneratorCapabilitiesMaxPPS

func PLQGeneratorCapabilitiesMaxPPS(dut *ondatra.DUTDevice) uint64

PLQGeneratorCapabilitiesMaxPPS returns supported max_pps for devices that does not support packet link qualification(PLQ) Generator max_pps to be at least >= 100000000.

func PLQReflectorStatsUnsupported

func PLQReflectorStatsUnsupported(dut *ondatra.DUTDevice) bool

PLQReflectorStatsUnsupported returns true for devices that does not support packet link qualification(PLQ) reflector packet sent/received stats.

func PacketProcessingAggregateDropsUnsupported

func PacketProcessingAggregateDropsUnsupported(dut *ondatra.DUTDevice) bool

PacketProcessingAggregateDropsUnsupported returns true if the device does not support packet processing aggregate drops.

func PeerGroupDefEbgpVrfUnsupported

func PeerGroupDefEbgpVrfUnsupported(dut *ondatra.DUTDevice) bool

PeerGroupDefEbgpVrfUnsupported returns true if peer group definition under ebgp vrf is unsupported

func PfRequireMatchDefaultRule

func PfRequireMatchDefaultRule(dut *ondatra.DUTDevice) bool

PfRequireMatchDefaultRule returns true for device which requires match condition for ether type v4 and v6 for default rule with network-instance default-vrf in policy-forwarding.

func PfRequireSequentialOrderPbrRules

func PfRequireSequentialOrderPbrRules(dut *ondatra.DUTDevice) bool

PfRequireSequentialOrderPbrRules returns true for device requires policy-forwarding rules to be in sequential order in the gNMI set-request.

func PowerDisableEnableLeafRefValidation

func PowerDisableEnableLeafRefValidation(dut *ondatra.DUTDevice) bool

PowerDisableEnableLeafRefValidation returns true if definition of leaf-ref is not supported.

func PrefixLimitExceededTelemetryUnsupported

func PrefixLimitExceededTelemetryUnsupported(dut *ondatra.DUTDevice) bool

PrefixLimitExceededTelemetryUnsupported is to skip checking prefix limit telemetry flag.

func QOSBufferAllocationConfigRequired

func QOSBufferAllocationConfigRequired(dut *ondatra.DUTDevice) bool

QOSBufferAllocationConfigRequired returns if device should configure QOS buffer-allocation-profile

func QOSDroppedOctets

func QOSDroppedOctets(dut *ondatra.DUTDevice) bool

QOSDroppedOctets returns if device should skip checking QOS Dropped octets stats for interface.

func QOSInQueueDropCounterUnsupported

func QOSInQueueDropCounterUnsupported(dut *ondatra.DUTDevice) bool

QOSInQueueDropCounterUnsupported returns true if /qos/interfaces/interface/input/queues/queue/state/dropped-pkts is not supported for any component type.

func QOSOctets

func QOSOctets(dut *ondatra.DUTDevice) bool

QOSOctets returns if device should skip checking QOS octet stats for interface.

func QOSQueueRequiresID

func QOSQueueRequiresID(dut *ondatra.DUTDevice) bool

QOSQueueRequiresID returns if device should configure QOS queue along with queue-id

func QOSVoqDropCounterUnsupported

func QOSVoqDropCounterUnsupported(dut *ondatra.DUTDevice) bool

QOSVoqDropCounterUnsupported returns if the device does not support telemetry path /qos/interfaces/interface/input/virtual-output-queues/voq-interface/queues/queue/state/dropped-pkts. Default value is false.

func QosGetStatePathUnsupported

func QosGetStatePathUnsupported(dut *ondatra.DUTDevice) bool

QosGetStatePathUnsupported returns whether the device does not support get state leaves under qos.

func QosSchedulerConfigRequired

func QosSchedulerConfigRequired(dut *ondatra.DUTDevice) bool

QosSchedulerConfigRequired returns if device should configure QOS buffer-allocation-profile

func QosSchedulerIngressPolicer

func QosSchedulerIngressPolicer(dut *ondatra.DUTDevice) bool

QosSchedulerIngressPolicer returns true if qos ingress policing is unsupported

func QosSetWeightConfigUnsupported

func QosSetWeightConfigUnsupported(dut *ondatra.DUTDevice) bool

QosSetWeightConfigUnsupported returns whether the device does not support set weight leaves under qos ecn.

func RedisConnectedUnderEbgpVrfUnsupported

func RedisConnectedUnderEbgpVrfUnsupported(dut *ondatra.DUTDevice) bool

RedisConnectedUnderEbgpVrfUnsupported returns true if redistribution of routes under ebgp vrf is unsupported

func ReorderCallsForVendorCompatibilty

func ReorderCallsForVendorCompatibilty(dut *ondatra.DUTDevice) bool

ReorderCallsForVendorCompatibilty returns true if call needs to be updated/added/deleted. Cisco: https://partnerissuetracker.corp.google.com/issues/322291556

func RequireRoutedSubinterface0

func RequireRoutedSubinterface0(dut *ondatra.DUTDevice) bool

RequireRoutedSubinterface0 returns true if device needs to configure subinterface 0 for non-zero sub-interfaces.

func RibWecmp

func RibWecmp(dut *ondatra.DUTDevice) bool

RibWecmp returns if device requires CLI knob to enable wecmp feature.

func RoutePolicyUnderAFIUnsupported

func RoutePolicyUnderAFIUnsupported(dut *ondatra.DUTDevice) bool

RoutePolicyUnderAFIUnsupported returns if Route-Policy under the AFI/SAFI is not supported

func RoutingPolicyChainingUnsupported

func RoutingPolicyChainingUnsupported(dut *ondatra.DUTDevice) bool

RoutingPolicyChainingUnsupported returns true if policy chaining is unsupported

func RoutingPolicyTagSetEmbedded

func RoutingPolicyTagSetEmbedded(dut *ondatra.DUTDevice) bool

RoutingPolicyTagSetEmbedded returns true if the implementation does not support tag-set(s) as a separate entity, but embeds it in the policy statement

func SSHServerCountersUnsupported

func SSHServerCountersUnsupported(dut *ondatra.DUTDevice) bool

SSHServerCountersUnsupported is to skip checking ssh server counters.

func SamePolicyAttachedToAllAfis

func SamePolicyAttachedToAllAfis(dut *ondatra.DUTDevice) bool

SamePolicyAttachedToAllAfis returns true if same import policy has to be applied for all AFIs

func SchedulerInputWeightLimit

func SchedulerInputWeightLimit(dut *ondatra.DUTDevice) bool

SchedulerInputWeightLimit returns whether the device does not support weight above 100.

func SetMetricAsPreference

func SetMetricAsPreference(dut *ondatra.DUTDevice) bool

SetMetricAsPreference returns true for devices which set metric as preference for static next-hop

func SetNativeUser

func SetNativeUser(dut *ondatra.DUTDevice) bool

SetNativeUser creates a user and assigns role/rbac to that user via native model.

func SetNoPeerGroup

func SetNoPeerGroup(dut *ondatra.DUTDevice) bool

SetNoPeerGroup Ensure that no BGP configurations exists under PeerGroups.

func SflowSourceAddressUpdateUnsupported

func SflowSourceAddressUpdateUnsupported(dut *ondatra.DUTDevice) bool

SflowSourceAddressUpdateUnsupported returns true if sflow source address update is unsupported

func SkipAfiSafiPathForBgpMultipleAs

func SkipAfiSafiPathForBgpMultipleAs(dut *ondatra.DUTDevice) bool

SkipAfiSafiPathForBgpMultipleAs return true if device do not support afi/safi path to enable allow multiple-as for eBGP

func SkipBgpSendCommunityType

func SkipBgpSendCommunityType(dut *ondatra.DUTDevice) bool

SkipBgpSendCommunityType return true if device needs to skip setting BGP send-community-type

func SkipBgpSessionCheckWithoutAfisafi

func SkipBgpSessionCheckWithoutAfisafi(dut *ondatra.DUTDevice) bool

SkipBgpSessionCheckWithoutAfisafi returns if device needs to skip checking AFI-SAFI disable.

func SkipCheckingAttributeIndex

func SkipCheckingAttributeIndex(dut *ondatra.DUTDevice) bool

SkipCheckingAttributeIndex return true if device do not return bgp attribute for the bgp session specifying the index

func SkipContainerOp

func SkipContainerOp(dut *ondatra.DUTDevice) bool

SkipContainerOp returns true if gNMI container OP needs to be skipped. Cisco: https://partnerissuetracker.corp.google.com/issues/322291556

func SkipControllerCardPowerAdmin

func SkipControllerCardPowerAdmin(dut *ondatra.DUTDevice) bool

SkipControllerCardPowerAdmin returns if power-admin-state config on controller card should be skipped. Default value is false.

func SkipIsisSetLevel

func SkipIsisSetLevel(dut *ondatra.DUTDevice) bool

SkipIsisSetLevel return true if device needs to skip setting isis-actions set-level while configuring routing-policy statement action

func SkipIsisSetMetricStyleType

func SkipIsisSetMetricStyleType(dut *ondatra.DUTDevice) bool

SkipIsisSetMetricStyleType return true if device needs to skip setting isis-actions set-metric-style-type while configuring routing-policy statement action

func SkipMacaddressCheck

func SkipMacaddressCheck(dut *ondatra.DUTDevice) bool

SkipMacaddressCheck returns true if mac address for an interface via gNMI needs to be skipped. Cisco: https://partnerissuetracker.corp.google.com/issues/322291556

func SkipNonBgpRouteExportCheck

func SkipNonBgpRouteExportCheck(dut *ondatra.DUTDevice) bool

SkipNonBgpRouteExportCheck returns true for devices that exports routes from all protocols to BGP if the export-policy is ACCEPT.

func SkipPlqInterfaceOperStatusCheck

func SkipPlqInterfaceOperStatusCheck(dut *ondatra.DUTDevice) bool

SkipPlqInterfaceOperStatusCheck returns true for devices that do not support PLQ operational status check for interfaces

func SkipPrefixSetMode

func SkipPrefixSetMode(dut *ondatra.DUTDevice) bool

SkipPrefixSetMode return true if device needs to skip setting prefix-set mode while configuring prefix-set routing-policy

func SkipSetRpMatchSetOptions

func SkipSetRpMatchSetOptions(dut *ondatra.DUTDevice) bool

SkipSetRpMatchSetOptions return true if device needs to skip setting match-prefix-set match-set-options while configuring routing-policy statement condition

func SkipSettingAllowMultipleAS

func SkipSettingAllowMultipleAS(dut *ondatra.DUTDevice) bool

SkipSettingAllowMultipleAS return true if device needs to skip setting allow-multiple-as while configuring eBGP

func SkipSettingDisableMetricPropagation

func SkipSettingDisableMetricPropagation(dut *ondatra.DUTDevice) bool

SkipSettingDisableMetricPropagation return true if device needs to skip setting disable-metric-propagation while configuring table-connection

func SkipSettingStatementForPolicy

func SkipSettingStatementForPolicy(dut *ondatra.DUTDevice) bool

SkipSettingStatementForPolicy return true if device do not support afi/safi path to enable allow multiple-as for eBGP

func SkipStaticNexthopCheck

func SkipStaticNexthopCheck(dut *ondatra.DUTDevice) bool

SkipStaticNexthopCheck returns if device needs index starting from non-zero

func SkipTCPNegotiatedMSSCheck

func SkipTCPNegotiatedMSSCheck(dut *ondatra.DUTDevice) bool

SkipTCPNegotiatedMSSCheck returns true for devices that do not support telemetry to check negotiated tcp mss value.

func SlaacPrefixLength128

func SlaacPrefixLength128(dut *ondatra.DUTDevice) bool

SlaacPrefixLength128 for Slaac generated IPv6 link local address

func StatePathsUnsupported

func StatePathsUnsupported(dut *ondatra.DUTDevice) bool

StatePathsUnsupported returns whether the device supports following state paths

func StaticLspConfigUnsupported

func StaticLspConfigUnsupported(dut *ondatra.DUTDevice) bool

StaticLspConfigUnsupported returns true if static lsp config is not supported

func StaticProtocolName

func StaticProtocolName(dut *ondatra.DUTDevice) string

StaticProtocolName returns the name used for the static routing protocol.

func StaticRouteNextHopInterfaceRefUnsupported

func StaticRouteNextHopInterfaceRefUnsupported(dut *ondatra.DUTDevice) bool

StaticRouteNextHopInterfaceRefUnsupported returns if device does not support Interface-ref under static-route next-hop

func StaticRouteWithDropNhUnsupported

func StaticRouteWithDropNhUnsupported(dut *ondatra.DUTDevice) bool

StaticRouteWithDropNhUnsupported unsupported drop nexthop

func StaticRouteWithExplicitMetric

func StaticRouteWithExplicitMetric(dut *ondatra.DUTDevice) bool

StaticRouteWithExplicitMetric set explicit metric

func StorageComponentUnsupported

func StorageComponentUnsupported(dut *ondatra.DUTDevice) bool

StorageComponentUnsupported returns if telemetry path /components/component/storage is not supported.

func SubinterfacePacketCountersMissing

func SubinterfacePacketCountersMissing(dut *ondatra.DUTDevice) bool

SubinterfacePacketCountersMissing returns if device is missing subinterface packet counters for IPv4/IPv6, so the test will skip checking them. Full OpenConfig compliant devices should pass both with and without this deviation.

func SwVersionUnsupported

func SwVersionUnsupported(dut *ondatra.DUTDevice) bool

SwVersionUnsupported returns true if the device does not support reporting software version according to the requirements in gNMI-1.10.

func SwitchChipIDUnsupported

func SwitchChipIDUnsupported(dut *ondatra.DUTDevice) bool

SwitchChipIDUnsupported returns whether the device supports id leaf for SwitchChip components.

func TableConnectionsUnsupported

func TableConnectionsUnsupported(dut *ondatra.DUTDevice) bool

TableConnectionsUnsupported returns true if Table Connections are unsupported.

func TcAttributePropagationUnsupported

func TcAttributePropagationUnsupported(dut *ondatra.DUTDevice) bool

TcAttributePropagationUnsupported returns true if attribute propagation for table connection is unsupported

func TcDefaultImportPolicyUnsupported

func TcDefaultImportPolicyUnsupported(dut *ondatra.DUTDevice) bool

TcDefaultImportPolicyUnsupported returns true if default import policy for table connection is unsupported

func TcMetricPropagationUnsupported

func TcMetricPropagationUnsupported(dut *ondatra.DUTDevice) bool

TcMetricPropagationUnsupported returns true if metric propagation for table connection is unsupported

func TcSubscriptionUnsupported

func TcSubscriptionUnsupported(dut *ondatra.DUTDevice) bool

TcSubscriptionUnsupported returns true if subscription for table connection is unsupported

func TraceRouteL4ProtocolUDP

func TraceRouteL4ProtocolUDP(dut *ondatra.DUTDevice) bool

TraceRouteL4ProtocolUDP returns if device only support UDP as l4 protocol for traceroute. Default value is false.

func TransceiverThresholdsUnsupported

func TransceiverThresholdsUnsupported(dut *ondatra.DUTDevice) bool

TransceiverThresholdsUnsupported returns true if the device does not support threshold container under /components/component/transceiver. Default value is false.

func TunnelConfigPathUnsupported

func TunnelConfigPathUnsupported(dut *ondatra.DUTDevice) bool

TunnelConfigPathUnsupported returns true for devices that require configuring Tunnel source-address destination-address, encapsulation type are not supported in OC

func TunnelStatePathUnsupported

func TunnelStatePathUnsupported(dut *ondatra.DUTDevice) bool

TunnelStatePathUnsupported returns true for devices that require configuring /interfaces/interface/state/counters/in-pkts, in-octets,out-pkts, out-octetsis not supported.

func UnsupportedStaticRouteNextHopRecurse

func UnsupportedStaticRouteNextHopRecurse(dut *ondatra.DUTDevice) bool

UnsupportedStaticRouteNextHopRecurse returns true for devices that don't support recursive resolution of static route next hop. Arista: https://partnerissuetracker.corp.google.com/issues/314449182

func UseParentComponentForTemperatureTelemetry

func UseParentComponentForTemperatureTelemetry(dut *ondatra.DUTDevice) bool

UseParentComponentForTemperatureTelemetry returns true if parent component supports temperature telemetry

func UseVendorNativeTagSetConfig

func UseVendorNativeTagSetConfig(dut *ondatra.DUTDevice) bool

UseVendorNativeTagSetConfig returns whether a device requires native model to configure tag-set

func WecmpAutoUnsupported

func WecmpAutoUnsupported(dut *ondatra.DUTDevice) bool

WecmpAutoUnsupported returns true if wecmp auto is not supported

func WeightedEcmpFixedPacketVerification

func WeightedEcmpFixedPacketVerification(dut *ondatra.DUTDevice) bool

WeightedEcmpFixedPacketVerification returns true if fixed packet is used in traffic flow

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL