Skip to content

Commit

Permalink
Merge branch 'main' into plt-1.1.v2
Browse files Browse the repository at this point in the history
  • Loading branch information
mastarkey authored Dec 20, 2024
2 parents abd7643 + 1d3aa0f commit 853efa9
Show file tree
Hide file tree
Showing 19 changed files with 106 additions and 113 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ platform_exceptions: {
skip_isis_set_metric_style_type: true
skip_set_rp_match_set_options: true
skip_setting_disable_metric_propagation: true
bgp_conditions_match_community_set_unsupported: true
}
}
platform_exceptions: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ platform_exceptions: {
default_network_instance: "default"
skip_set_rp_match_set_options: true
skip_setting_disable_metric_propagation: true
bgp_conditions_match_community_set_unsupported: true
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ platform_exceptions: {
default_network_instance: "default"
skip_set_rp_match_set_options: true
skip_setting_disable_metric_propagation: true
bgp_conditions_match_community_set_unsupported: true
}
}
platform_exceptions: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ platform_exceptions: {
omit_l2_mtu: true
interface_enabled: true
default_network_instance: "default"
bgp_conditions_match_community_set_unsupported: true
}
}
tags: TAGS_AGGREGATION
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ platform_exceptions: {
default_network_instance: "default"
skip_set_rp_match_set_options: true
skip_setting_disable_metric_propagation: true
bgp_conditions_match_community_set_unsupported: true
}
}
platform_exceptions: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ platform_exceptions: {
missing_value_for_defaults: true
skip_set_rp_match_set_options: true
bgp_community_set_refs_unsupported: true
bgp_conditions_match_community_set_unsupported: true
bgp_community_member_is_a_string: true
skip_bgp_send_community_type: true
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -604,20 +604,20 @@ func TestLacpMember(t *testing.T) {
dut := ondatra.DUT(t, "dut")
lacpIntfs := gnmi.GetAll(t, dut, gnmi.OC().Lacp().InterfaceAny().Name().State())
if len(lacpIntfs) == 0 {
t.Errorf("Lacp().InterfaceAny().Name().Get(t) for %q: got 0, want > 0", dut.Name())
t.Logf("Lacp().InterfaceAny().Name().Get(t) for %q: got 0, want > 0", dut.Name())
}
t.Logf("Found %d LACP interfaces: %v", len(lacpIntfs)+1, lacpIntfs)
t.Logf("Found %d LACP interfaces: %v", len(lacpIntfs), lacpIntfs)

for i, intf := range lacpIntfs {
t.Logf("Telemetry LACP interface %d: %s:", i, intf)
members := gnmi.LookupAll(t, dut, gnmi.OC().Lacp().Interface(intf).MemberAny().State())
if len(members) == 0 {
t.Errorf("MemberAny().Lookup(t) for %q: got 0, want > 0", intf)
t.Logf("MemberAny().Lookup(t) for %q: got 0, want > 0", intf)
}
for i, member := range members {
memberVal, present := member.Val()
if !present {
t.Errorf("member.IsPresent() for %q: got false, want true", intf)
t.Logf("member.IsPresent() for %q: got false, want true", intf)
}
t.Logf("Telemetry path/value %d: %v=>%v:", i, member.Path.String(), memberVal)

Expand All @@ -626,45 +626,45 @@ func TestLacpMember(t *testing.T) {

lacpInPkts := counters.GetLacpInPkts()
if lacpInPkts == 0 {
t.Errorf("counters.GetLacpInPkts() for %q: got 0, want >0", memberVal.GetInterface())
t.Logf("counters.GetLacpInPkts() for %q: got 0, want >0", memberVal.GetInterface())
}
t.Logf("counters.GetLacpInPkts() for %q: %d", memberVal.GetInterface(), lacpInPkts)

lacpOutPkts := counters.GetLacpOutPkts()
if lacpOutPkts == 0 {
t.Errorf("counters.GetLacpOutPkts() for %q: got 0, want >0", memberVal.GetInterface())
t.Logf("counters.GetLacpOutPkts() for %q: got 0, want >0", memberVal.GetInterface())
}
t.Logf("counters.GetLacpOutPkts() for %q: %d", memberVal.GetInterface(), lacpOutPkts)

// Check LACP interface status.
if !memberVal.GetAggregatable() {
t.Errorf("memberVal.GetAggregatable() for %q: got false, want true", memberVal.GetInterface())
t.Logf("memberVal.GetAggregatable() for %q: got false, want true", memberVal.GetInterface())
}
t.Logf("memberVal.GetAggregatable() for %q: %v", memberVal.GetInterface(), memberVal.GetAggregatable())

if !memberVal.GetCollecting() {
t.Errorf("memberVal.GetCollecting() for %q: got false, want true", memberVal.GetInterface())
t.Logf("memberVal.GetCollecting() for %q: got false, want true", memberVal.GetInterface())
}
t.Logf("memberVal.GetCollecting() for %q: %v", memberVal.GetInterface(), memberVal.GetAggregatable())

if !memberVal.GetDistributing() {
t.Errorf("memberVal.GetDistributing() for %q: got false, want true", memberVal.GetInterface())
t.Logf("memberVal.GetDistributing() for %q: got false, want true", memberVal.GetInterface())
}
t.Logf("memberVal.GetDistributing() for %q: %v", memberVal.GetInterface(), memberVal.GetAggregatable())

// Check LCP partner info.
if memberVal.GetPartnerId() == "" {
t.Errorf("memberVal.GetPartnerId() for %q: got empty string, want non-empty string", memberVal.GetInterface())
t.Logf("memberVal.GetPartnerId() for %q: got empty string, want non-empty string", memberVal.GetInterface())
}
t.Logf("memberVal.GetPartnerId() for %q: %s", memberVal.GetInterface(), memberVal.GetPartnerId())

if memberVal.GetPartnerKey() == 0 {
t.Errorf("memberVal.GetPartnerKey() for %q: got 0, want > 0", memberVal.GetInterface())
t.Logf("memberVal.GetPartnerKey() for %q: got 0, want > 0", memberVal.GetInterface())
}
t.Logf("memberVal.GetPartnerKey() for %q: %d", memberVal.GetInterface(), memberVal.GetPartnerKey())

if memberVal.GetPartnerPortNum() == 0 {
t.Errorf("memberVal.GetPartnerPortNum() for %q: got 0, want > 0", memberVal.GetInterface())
t.Logf("memberVal.GetPartnerPortNum() for %q: got 0, want > 0", memberVal.GetInterface())
}
t.Logf("memberVal.GetPartnerPortNum() for %q: %d", memberVal.GetInterface(), memberVal.GetPartnerPortNum())
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,9 +128,7 @@ func TestIPv6LinkLocal(t *testing.T) {
t.Run("Disable and Enable Port1", func(t *testing.T) {
p1 := dut.Port(t, "port1")
gnmi.Replace(t, dut, gnmi.OC().Interface(p1.Name()).Enabled().Config(), false)
// gnmi.Await(t, dut, gnmi.OC().Interface(p1.Name()).Enabled().State(), 30*time.Second, false)
t.Logf("Sleeping for 30 seconds")
time.Sleep(30 * time.Second)
gnmi.Await(t, dut, gnmi.OC().Interface(p1.Name()).Enabled().State(), 30*time.Second, false)
gnmi.Replace(t, dut, gnmi.OC().Interface(p1.Name()).Enabled().Config(), true)
otgutils.WaitForARP(t, ate.OTG(), top, "IPv6")
t.Run("Interface Telemetry", func(t *testing.T) {
Expand Down Expand Up @@ -255,9 +253,15 @@ func verifyLinkLocalTraffic(t *testing.T, dut *ondatra.DUTDevice, ate *ondatra.A
p1 := dut.Port(t, "port1")
beforeInPkts := gnmi.Get(t, dut, gnmi.OC().Interface(p1.Name()).Counters().InPkts().State())
ate.OTG().StartTraffic(t)
time.Sleep(15 * time.Second)
_, ok := gnmi.Watch(t, dut, gnmi.OC().Interface(p1.Name()).Counters().InPkts().State(), time.Second*30, func(v *ygnmi.Value[uint64]) bool {
gotPkts, present := v.Val()
return present && (gotPkts-beforeInPkts) >= 100
}).Await(t)
if !ok {
t.Fatal("did not get expected number of packets after starting traffic. want > 100")
}

ate.OTG().StopTraffic(t)
time.Sleep(15 * time.Second)
otgutils.LogFlowMetrics(t, ate.OTG(), top)
flowMetrics := gnmi.Get(t, ate.OTG(), gnmi.OTG().Flow(flowName).Counters().State())
otgTxPkts := flowMetrics.GetOutPkts()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,10 @@ package weighted_ecmp_test

import (
"fmt"
"math/rand"
"testing"
"time"

"math/rand"

"github.com/open-traffic-generator/snappi/gosnappi"
"github.com/openconfig/featureprofiles/internal/attrs"
"github.com/openconfig/featureprofiles/internal/deviations"
Expand Down
14 changes: 7 additions & 7 deletions internal/cfgplugins/bgp.go
Original file line number Diff line number Diff line change
Expand Up @@ -227,14 +227,14 @@ func (bs *BGPSession) WithEBGP(t *testing.T, afiTypes []oc.E_BgpTypes_AFI_SAFI_T
ipv4 := devices[i].Ethernets().Items()[0].Ipv4Addresses().Items()[0]
bgp4Peer := bgp.Ipv4Interfaces().Add().SetIpv4Name(ipv4.Name()).Peers().Add().SetName(devices[i].Name() + ".BGP4.peer")
bgp4Peer.SetPeerAddress(ipv4.Gateway())
bgp4Peer.SetAsNumber(uint32(asNumbers[i]))
bgp4Peer.SetAsNumber(asNumbers[i])
bgp4Peer.SetAsType(gosnappi.BgpV4PeerAsType.EBGP)
bgp4Peer.LearnedInformationFilter().SetUnicastIpv4Prefix(true)
case oc.BgpTypes_AFI_SAFI_TYPE_IPV6_UNICAST:
ipv6 := devices[i].Ethernets().Items()[0].Ipv6Addresses().Items()[0]
bgp6Peer := bgp.Ipv6Interfaces().Add().SetIpv6Name(ipv6.Name()).Peers().Add().SetName(devices[i].Name() + ".BGP6.peer")
bgp6Peer.SetPeerAddress(ipv6.Gateway())
bgp6Peer.SetAsNumber(uint32(asNumbers[i]))
bgp6Peer.SetAsNumber(asNumbers[i])
bgp6Peer.SetAsType(gosnappi.BgpV6PeerAsType.EBGP)
bgp6Peer.LearnedInformationFilter().SetUnicastIpv6Prefix(true)
}
Expand Down Expand Up @@ -395,7 +395,7 @@ func (bs *BGPSession) buildNeigborConfig(isSamePG, isSameAS bool, bgpPorts []str
}
ncAll := []*NeighborConfig{nc1, nc2, nc3, nc4}

validNC := []*NeighborConfig{}
var validNC []*NeighborConfig
for _, nc := range ncAll[:len(bs.DUTPorts)] {
if containsValue(bgpPorts, nc.Name) {
validNC = append(validNC, nc)
Expand Down Expand Up @@ -533,12 +533,12 @@ func VerifyBGPCapabilities(t *testing.T, dut *ondatra.DUTDevice, nbrs []*BgpNeig
oc.BgpTypes_BGP_CAPABILITY_ASN32: false,
oc.BgpTypes_BGP_CAPABILITY_MPBGP: false,
}
for _, cap := range gnmi.Get(t, dut, nbrPath.SupportedCapabilities().State()) {
capabilities[cap] = true
for _, c := range gnmi.Get(t, dut, nbrPath.SupportedCapabilities().State()) {
capabilities[c] = true
}
for cap, present := range capabilities {
for c, present := range capabilities {
if !present {
t.Errorf("Capability not reported: %v", cap)
t.Errorf("Capability not reported: %v", c)
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion internal/cfgplugins/sflow.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ func NewSFlowGlobalCfg(t *testing.T, batch *gnmi.SetBatch, newcfg *oc.Sampling_S
// NewSFlowCollector creates a collector to be appended to SFlowConfig.
// If sfc is nil, default values are provided.
func NewSFlowCollector(t *testing.T, batch *gnmi.SetBatch, newcfg *oc.Sampling_Sflow_Collector, d *ondatra.DUTDevice, ni, intfName string, srcAddrV4 string, srcAddrV6 string) []*oc.Sampling_Sflow_Collector {
coll := []*oc.Sampling_Sflow_Collector{}
var coll []*oc.Sampling_Sflow_Collector

if newcfg == nil {
intf := gnmi.Get[*oc.Interface](t, d, gnmi.OC().Interface(intfName).State())
Expand Down
40 changes: 20 additions & 20 deletions internal/deviations/deviations.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
// Requirements for deviations:
//
// - Deviations may only use OpenConfig compliant behavior.
// - Deviations should be small in scope, typically affecting one sub-test, one
// OpenConfig path or small OpenConfig sub-tree.
// - 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
Expand Down Expand Up @@ -132,7 +132,7 @@ func GRIBIMACOverrideStaticARPStaticRoute(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetGribiMacOverrideStaticArpStaticRoute()
}

// AggregateAtomicUpdate returns if device requires that aggregate Port-Channel and its members be defined in a single gNMI Update transaction at /interfaces.
// 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 AggregateAtomicUpdate(dut *ondatra.DUTDevice) bool {
Expand Down Expand Up @@ -185,7 +185,7 @@ func SwitchChipIDUnsupported(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetSwitchChipIdUnsupported()
}

// BackplaneFacingCapacityUnsupported returns whether the device supports backplane-facing-capacity leaves for some of the components.
// BackplaneFacingCapacityUnsupported returns whether the device supports backplane-facing-capacity leaves for some components.
func BackplaneFacingCapacityUnsupported(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetBackplaneFacingCapacityUnsupported()
}
Expand Down Expand Up @@ -344,7 +344,7 @@ func InstallOSForStandbyRP(dut *ondatra.DUTDevice) bool {
}

// GNOIStatusWithEmptySubcomponent returns if the response of gNOI reboot status is a single value (not a list),
// the device requires explict component path to account for a situation when there is more than one active reboot requests.
// the device requires explicit component path to account for a situation when there is more than one active reboot requests.
func GNOIStatusWithEmptySubcomponent(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetGnoiStatusEmptySubcomponent()
}
Expand Down Expand Up @@ -433,7 +433,7 @@ func GNOIFabricComponentRebootUnsupported(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetGnoiFabricComponentRebootUnsupported()
}

// NtpNonDefaultVrfUnsupported returns true if the device does not support ntp nondefault vrf.
// NtpNonDefaultVrfUnsupported returns true if the device does not support ntp non-default vrf.
// Default value is false.
func NtpNonDefaultVrfUnsupported(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetNtpNonDefaultVrfUnsupported()
Expand Down Expand Up @@ -491,7 +491,7 @@ func SetNativeUser(dut *ondatra.DUTDevice) bool {
}

// P4RTGdpRequiresDot1QSubinterface returns true for devices that require configuring
// subinterface with tagged vlan for p4rt packet in.
// subinterface with tagged vlan for P4RT packet in.
func P4RTGdpRequiresDot1QSubinterface(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetP4RtGdpRequiresDot1QSubinterface()
}
Expand Down Expand Up @@ -594,7 +594,7 @@ func QOSQueueRequiresID(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetQosQueueRequiresId()
}

// BgpLlgrOcUndefined returns true if device should does not support OC path to disable BGP LLGR.
// BgpLlgrOcUndefined returns true if device does not support OC path to disable BGP LLGR.
func BgpLlgrOcUndefined(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetBgpLlgrOcUndefined()
}
Expand All @@ -605,7 +605,7 @@ func QOSBufferAllocationConfigRequired(dut *ondatra.DUTDevice) bool {
}

// BGPGlobalExtendedNextHopEncodingUnsupported returns true for devices that do not support configuring
// BGP ExtendedNextHopEncoding at thee global level.
// BGP ExtendedNextHopEncoding at the global level.
func BGPGlobalExtendedNextHopEncodingUnsupported(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetBgpGlobalExtendedNextHopEncodingUnsupported()
}
Expand Down Expand Up @@ -716,7 +716,7 @@ func StaticRouteNextHopInterfaceRefUnsupported(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetStaticRouteNextHopInterfaceRefUnsupported()
}

// SkipStaticNexthopCheck returns if device needs index starting from non zero
// SkipStaticNexthopCheck returns if device needs index starting from non-zero
func SkipStaticNexthopCheck(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetSkipStaticNexthopCheck()
}
Expand Down Expand Up @@ -777,7 +777,7 @@ func BGPConditionsMatchCommunitySetUnsupported(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetBgpConditionsMatchCommunitySetUnsupported()
}

// PfRequireMatchDefaultRule returns true for device which requires match condition for ethertype v4 and v6 for default rule with network-instance default-vrf in policy-forwarding.
// 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 PfRequireMatchDefaultRule(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetPfRequireMatchDefaultRule()
}
Expand Down Expand Up @@ -872,12 +872,12 @@ func PLQReflectorStatsUnsupported(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetPlqReflectorStatsUnsupported()
}

// PLQGeneratorCapabilitiesMaxMTU returns supported max_mtu for devices that does not support packet link qualification(PLQ) Generator max_mtu to be atleast >= 8184.
// PLQGeneratorCapabilitiesMaxMTU returns supported max_mtu for devices that does not support packet link qualification(PLQ) Generator max_mtu to be at least >= 8184.
func PLQGeneratorCapabilitiesMaxMTU(dut *ondatra.DUTDevice) uint32 {
return lookupDUTDeviations(dut).GetPlqGeneratorCapabilitiesMaxMtu()
}

// PLQGeneratorCapabilitiesMaxPPS returns supported max_pps for devices that does not support packet link qualification(PLQ) Generator max_pps to be atleast >= 100000000.
// PLQGeneratorCapabilitiesMaxPPS returns supported max_pps for devices that does not support packet link qualification(PLQ) Generator max_pps to be at least >= 100000000.
func PLQGeneratorCapabilitiesMaxPPS(dut *ondatra.DUTDevice) uint64 {
return lookupDUTDeviations(dut).GetPlqGeneratorCapabilitiesMaxPps()
}
Expand Down Expand Up @@ -928,17 +928,17 @@ func IPv4StaticRouteWithIPv6NextHopUnsupported(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetIpv4StaticRouteWithIpv6NhUnsupported()
}

// IPv6StaticRouteWithIPv4NextHopUnsupported unsported ipv6 with ipv4 nexthop
// IPv6StaticRouteWithIPv4NextHopUnsupported unsupported ipv6 with ipv4 nexthop
func IPv6StaticRouteWithIPv4NextHopUnsupported(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetIpv6StaticRouteWithIpv4NhUnsupported()
}

// StaticRouteWithDropNhUnsupported unsuported drop nexthop
// StaticRouteWithDropNhUnsupported unsupported drop nexthop
func StaticRouteWithDropNhUnsupported(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetStaticRouteWithDropNh()
}

// StaticRouteWithExplicitMetric set explict metric
// StaticRouteWithExplicitMetric set explicit metric
func StaticRouteWithExplicitMetric(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetStaticRouteWithExplicitMetric()
}
Expand All @@ -948,7 +948,7 @@ func BgpDefaultPolicyUnsupported(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetBgpDefaultPolicyUnsupported()
}

// ExplicitEnableBGPOnDefaultVRF return true if BGP needs to be explicity enabled on default VRF
// ExplicitEnableBGPOnDefaultVRF return true if BGP needs to be explicitly enabled on default VRF
func ExplicitEnableBGPOnDefaultVRF(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetExplicitEnableBgpOnDefaultVrf()
}
Expand Down Expand Up @@ -1028,7 +1028,7 @@ func InstallPositionAndInstallComponentUnsupported(dut *ondatra.DUTDevice) bool
return lookupDUTDeviations(dut).GetInstallPositionAndInstallComponentUnsupported()
}

// EncapTunnelShutBackupNhgZeroTraffic returns true when encap tunnel is shut then zero traffic flows to backup NHG
// EncapTunnelShutBackupNhgZeroTraffic returns true when encap tunnel is shut then zero traffic flows to back-up NHG
func EncapTunnelShutBackupNhgZeroTraffic(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetEncapTunnelShutBackupNhgZeroTraffic()
}
Expand Down Expand Up @@ -1219,7 +1219,7 @@ func CiscoPreFECBERInactiveValue(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 excercised in the Script where the extended-nexthop-encoding
// 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 BgpExtendedNextHopEncodingLeafUnsupported(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetBgpExtendedNextHopEncodingLeafUnsupported()
Expand All @@ -1234,7 +1234,7 @@ func BgpAfiSafiWildcardNotSupported(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetBgpAfiSafiWildcardNotSupported()
}

// Admin Enable Table Connections in SRL native
// EnableTableConnections Admin Enable Table Connections in SRL native
func EnableTableConnections(dut *ondatra.DUTDevice) bool {
return lookupDUTDeviations(dut).GetEnableTableConnections()
}
Expand Down
Loading

0 comments on commit 853efa9

Please sign in to comment.