Releases: open-traffic-generator/ixia-c
Release v1.17.0-9
Build Details
Component | Version |
---|---|
Open Traffic Generator API | 1.17.0 |
snappi | 1.17.0 |
gosnappi | 1.17.0 |
keng-controller | 1.17.0-9 |
ixia-c-traffic-engine | 1.8.0.193 |
keng-app-usage-reporter | 0.0.1-52 |
ixia-c-protocol-engine | 1.00.0.419 |
keng-layer23-hw-server | 1.17.0-1 |
keng-operator | 0.3.34 |
otg-gnmi-server | 1.14.18 |
ixia-c-one | 1.17.0-9 |
UHD400 | 1.5.1 |
Release Features(s)
-
Ixia Chassis & Appliances(Novus, AresOne): Support added for BGP/BGP+ over ISIS Simulated Topology. More Details
loopback = simRtr.Ipv4Loopbacks(). Add(). SetName("IPv4Loopback"). SetAddress(dutIPv4). SetEthName(simRtr.Ethernets().Items()[0].Name()) simRtrBgp= simRtr.Bgp(). SetRouterId(loopback.Address()) simRtrBgpIntf = simRtrBgp.Ipv4Interfaces().Add(). SetIpv4Name(loopback.Name()) simRtrBgpIntf.Peers().Add(). SetAsNumber(1111). SetAsType(gosnappi.BgpV4PeerAsType.EBGP). SetPeerAddress(fromPeerIp). SetName("BgpPeer1")
Note: For configuration of simulated topology please refer here.
-
Ixia-C, Ixia Chassis & Appliances(Novus, AresOne): Support added for GRE header in traffic flows.
flow1 := config.Flows().Add() ... gre := flow1.Packet().Add().Gre() ...
Note: By default the correct GRE Protocol value will be set automatically depending on next header eg. IPv4/v6.
Bug Fix(s)
-
Ixia Chassis & Appliances(Novus, AresOne): Issue is fixed where fetching ISIS learned information using
get_states
would sometimes fail with a error Cannot clear data while transfer is in progress - data would be inconsistent. -
Ixia-C: Issue is fixed where ARP/ND resolution was failing for LAG configurations with a mix of Loopback and connected interfaces.
-
Ixia-C: Issue is fixed where on fetching BGP/BGP+ learned prefix information using
get_states
would return an incorrect prefix in certain scenarios. This was more likely to happen for IPv6 prefixes. -
Ixia-C, UHD400: Issue is fixed where if the DHCPv6 client type is configured as IANAPD, DHCPv6 Server
get_states
doesn't show IAPD addresses. -
UHD400: Issue is fixed where Auto MAC resolution was not working properly for multinic scenarios such as LAG, resulting in flows being transmitted with dest MAC as 00:00:00:00:00:00 and DUT not forwarding these packets.
Known Issues
- Ixia-C, UHD400: When DHCPv6 Server is configured with multiple pools, The DHCPv6 clients are not accepting addresses from different pools.
- Ixia Chassis & Appliances(Novus, AresOne): If
keng-layer23-hw-server
version is upgraded/downgraded, the ports which will be used from this container must be rebooted once before running the tests. - Ixia Chassis & Appliances(Novus, AresOne):
StartProtocols
/set_control_state.protocol.all.start
can get stuck till the time all DHPCv4/v6 clients receive the leased IPv4/v6 addresses from the DHCPv4/v6 server/relay agent. This may result in getting"context deadline exceeded"
error in the test program. - UHD400: Packets will not be transmitted if
flows[i].rate.pps
is less than 50. - UHD400:
values
for fields in flow packet headers can be created with maximum length of 1000 values. If larger set of values are required for a field which are random, please userandom
instead ofvalues
. - Ixia-C: Flow Tx is incremented for flow with tx endpoints as LAG, even if no packets are sent on the wire when all active links of the LAG are down.
- Ixia-C: Supported value for
flows[i].metrics.latency.mode
iscut_through
. - Ixia-C: The metric
loss
in flow metrics is currently not supported. - Ixia-C: When flow transmit is started, transmission will be restarted on any existing flows already transmitting packets.
Release v1.16.0-2
Build Details
Component | Version |
---|---|
Open Traffic Generator API | 1.16.0 |
snappi | 1.16.0 |
gosnappi | 1.16.0 |
keng-controller | 1.16.0-2 |
ixia-c-traffic-engine | 1.8.0.193 |
keng-app-usage-reporter | 0.0.1-52 |
ixia-c-protocol-engine | 1.00.0.415 |
keng-layer23-hw-server | 1.16.0-2 |
keng-operator | 0.3.34 |
otg-gnmi-server | 1.14.16 |
ixia-c-one | 1.16.0-2 |
UHD400 | 1.5.1 |
Release Features(s)
-
Ixia-C, UHD400: Support added for DHCPv6 Client and Server in control plane.
- User will be the able to configure DHCPv6 Client and Server by the following code snippet.
// Configure a DHCP Client dhcpv6client := d1Eth1.Dhcpv6Interfaces().Add(). SetName("p1d1dhcpv61") dhcpv6client.IaType().Iata() dhcpv6client.DuidType().Llt() // Configure a DHCPv6 Server d1Dhcpv6Server := d2.DhcpServer().Ipv6Interfaces().Add(). SetName("p2d1Dhcpv6Server1"). d1Dhcpv6ServerPool := d1Dhcpv6Server.SetIpv6Name("p2d1ipv6"). Leases().Add(). SetLeaseTime(3600) IaType := d1Dhcpv6ServerPool.IaType().Iata() IaType. SetStartAddress("2000:0:0:1::100"). SetStep(1). SetSize(10). SetPrefixLen(64)
-
UHD400: Support of Egress Flow tracking for multiple flows is added any location of supported fields upto 10 bits.
- Supported fields are
ethernet.src/dst
,vlan.id
,vlan.priority
,ipv4.src/dst
,ipv4.precedence
,ipv6.src/dst
,ipv6.traffic_class
.
eth := flow.EgressPacket().Add().Ethernet() ipv4 := flow.EgressPacket().Add().Ipv4() ipv4Tag := ipv4.Dst().MetricTags().Add() ipv4Tag.SetName("flow_ipv4_dst") ipv4Tag.SetOffset(22) ipv4Tag.SetLength(10)
- Supported fields are
-
Ixia Chassis & Appliances(Novus, AresOne): Support added for ISIS Simulated Topology. More Details
- Configuration for ISIS attributes for newly introduced simulated routers are identical to configuration for currently supported directly connected emulated routers.
devices[i].ethernets[j].connection.simulated_link
is introduced to create a simulated ethernet connection to build a Simulated Topology.
simulatedRouterEthernet := simulatedRouter.Ethernets().Add(). SetName("simRtrEth"). SetMac("00:00:11:02:02:02") simulatedRouterEthernet.Connection().SimulatedLink().SetRemoteSimulatedLink("connRtrSimEth") connectedRouterSimulatedEthernet := connectedRouter.Ethernets().Add(). SetName("connRtrSimEth"). SetMac("00:00:01:01:01:01") connectedRouterSimulatedEthernet.Connection().SimulatedLink().SetRemoteSimulatedLink("simRtrEth")
Note:
get_metrics/states
APIs are only applicable for the connected emulated routers and not for the simulated routers. -
Ixia-C, UHD400, Ixia Chassis & Appliances(Novus, AresOne): Support added for fetching
lldp_neighbors[i].custom_tlvs[j].information
as hex bytes usingget_states
API. More details
Bug Fix(s)
-
Ixia Chassis & Appliances(Novus, AresOne): Issue is fixed where for certain scenarios such as retrieving large control capture buffer or fetching
get_metrics/states
for large amount of data results in errors similar to "grpc: received message larger than max (7934807 vs. 4194304)".- For such scenarios note that the grpc receive buffer on the client should also be locally increased if necessary from default value of 4 MB.
-
Ixia-C: Issue is fixed for LLDP where, when multiple custom tlvs are configured to be sent, sometimes the bytes in the
information
field in the outgoing LLDP PDUs were corrupted.
Known Issues
- Ixia-C, UHD400: When the DHCPv6 client type is configured as IANAPD, DHCPv6 Server
get_states
doesn't show IAPD addresses - Ixia-C, UHD400: When DHCPv6 Server is configured with multiple pools, The DHCPv6 clients are not accepting addresses from different pools.
- Ixia Chassis & Appliances(Novus, AresOne): If
keng-layer23-hw-server
version is upgraded/downgraded, the ports which will be used from this container must be rebooted once before running the tests. - Ixia Chassis & Appliances(Novus, AresOne):
StartProtocols
/set_control_state.protocol.all.start
can get stuck till the time all DHPCv4/v6 clients receive the leased IPv4/v6 addresses from the DHCPv4/v6 server/relay agent. This may result in getting"context deadline exceeded"
error in the test program. - UHD400: Packets will not be transmitted if
flows[i].rate.pps
is less than 50. - UHD400:
values
for fields in flow packet headers can be created with maximum length of 1000 values. If larger set of values are required for a field which are random, please userandom
instead ofvalues
. - Ixia-C: Flow Tx is incremented for flow with tx endpoints as LAG, even if no packets are sent on the wire when all active links of the LAG are down.
- Ixia-C: Supported value for
flows[i].metrics.latency.mode
iscut_through
. - Ixia-C: The metric
loss
in flow metrics is currently not supported. - Ixia-C: When flow transmit is started, transmission will be restarted on any existing flows already transmitting packets.
Release v1.14.0-1
Build Details
Component | Version |
---|---|
Open Traffic Generator API | 1.14.0 |
snappi | 1.14.0 |
gosnappi | 1.14.0 |
keng-controller | 1.14.0-1 |
ixia-c-traffic-engine | 1.8.0.99 |
keng-app-usage-reporter | 0.0.1-52 |
ixia-c-protocol-engine | 1.00.0.405 |
keng-layer23-hw-server | 1.14.0-1 |
keng-operator | 0.3.34 |
otg-gnmi-server | 1.14.15 |
ixia-c-one | 1.14.0-1 |
UHD400 | 1.4.0 |
Release Features(s)
-
Ixia Chassis & Appliances(Novus, AresOne): Support added for OSPFv2. details
ospfRouter := device1.Ospfv2(). SetName("OspfRtr"). SetStoreLsa(true) intf := ospfRouter.Interfaces().Add(). SetName("OspfIntf"). SetIpv4Name("Ipv4Intf1") intf.Area().SetId(0) intf.NetworkType().PointToPoint() ospfRoutes := ospfRouter.V4Routes(). Add(). SetName("OspfRoutes") ospfRoutes. Addresses(). Add(). SetAddress("10.10.10.0"). SetPrefix(24). SetCount(100). SetStep(2)
- Learned LSAs can be fetched by the following
req := gosnappi.NewStatesRequest() req.Ospfv2Lsas().SetRouterNames(routerNames) res, err := client.GetStates(req)
- OSPFv2 metrics can be fetched by the following
req := gosnappi.NewMetricsRequest() reqOspf := req.Ospfv2() reqOspf.SetRouterNames(routerNames)
-
Ixia-C, Ixia Chassis & Appliances(Novus, AresOne): Support added to update
flows[i].size
andflows[i].rate
on the fly. flow = get_config.Flows().Items()[0] flow.Rate().SetPps(120) flow.Size().SetFixed(512) flowUpdateCfg: = gosnappi.NewConfigUpdate().Flows() flowUpdateCfg.Flows().Append(flow) flowUpdateCfg.SetPropertyNames ([]gosnappi.FlowsUpdatePropertyNamesEnum{ gosnappi.FlowsUpdatePropertyNames.SIZE, gosnappi.FlowsUpdatePropertyNames.RATE }) configUpdate = gosnappi.NewConfigUpdate() configUpdate.SetFlows(flowUpdateCfg) res, err := client.Api().UpdateConfig(configUpdate)
Bug Fix(s)
- Ixia-C: Issue where flows containing
ipv4/v6
header withoutsrc/dst
specified was returning error onset_config
"Error flow [ flow-name ] has AUTO IPv4 src address and Tx device [ flow-end-point ] with no dhcpv4 interface" is fixed.
Known Issues
- Ixia Chassis & Appliances(Novus, AresOne): If
keng-layer23-hw-server
version is upgraded/downgraded, the ports which will be used from this container must be rebooted once before running the tests. - Ixia Chassis & Appliances(Novus, AresOne):
StartProtocols
/set_control_state.protocol.all.start
can get stuck till the time all DHPCv4/v6 clients receive the leased IPv4/v6 addresses from the DHCPv4/v6 server/relay agent. This may result in getting"context deadline exceeded"
error in the test program. - UHD400: Packets will not be transmitted if
flows[i].rate.pps
is less than 50. - UHD400:
values
for fields in flow packet headers can be created with maximum length of 1000 values. If larger set of values are required for a field which are random, please userandom
instead ofvalues
. - Ixia-C: Flow Tx is incremented for flow with tx endpoints as LAG, even if no packets are sent on the wire when all active links of the LAG are down.
- Ixia-C: Supported value for
flows[i].metrics.latency.mode
iscut_through
. - Ixia-C: The metric
loss
in flow metrics is currently not supported. - Ixia-C: When flow transmit is started, transmission will be restarted on any existing flows already transmitting packets.
Release v1.13.0-9
Build Details
Component | Version |
---|---|
Open Traffic Generator API | 1.13.0 |
snappi | 1.13.0 |
gosnappi | 1.13.0 |
keng-controller | 1.13.0-9 |
ixia-c-traffic-engine | 1.8.0.90 |
keng-app-usage-reporter | 0.0.1-52 |
ixia-c-protocol-engine | 1.00.0.404 |
keng-layer23-hw-server | 1.13.0-5 |
keng-operator | 0.3.34 |
otg-gnmi-server | 1.14.14 |
ixia-c-one | 1.13.0-9 |
UHD400 | 1.4.0 |
Release Features(s)
-
Keng-Operator: go version is upgraded to use
v1.23
along with security updates. -
Ixia-C: Support added to send flows over DHCPv4 endpoints.
f1 := config.Flows().Add() f1.SetName(flowName). TxRx().Device(). SetTxNames([]string{"p1d1dhcpv4_1"}). SetRxNames([]string{"p2d1ipv4"}) f1Ip := f1.Packet().Add().Ipv4() // will be populated automatically with the the dynamically allocated Ip to DHCP client f1Ip.Src().Auto().Dhcp() … f2Ip.Dst().Auto().Dhcp()
-
Ixia Chassis & Appliances(Novus, AresOne): Support added for LLDP.
// LLDP configuration. lldp := config.Lldp().Add() lldp.SystemName().SetValue(lldpSrc.systemName) lldp.SetName(lldpSrc.otgName) lldp.Connection().SetPortName(portName) lldp.ChassisId().MacAddressSubtype(). SetValue(lldpSrc.macAddress)
Bug Fix(s)
-
Ixia Chassis & Appliances(Novus, AresOne): There was degradation in time taken for starting large number of BGP/BGP+ peers on one port. This issue is fixed.
-
Ixia Chassis & Appliances(Novus, AresOne): There was an exception being returned from
set_config
on creating multiple loopbacks in a device and configuring protocols on top of that. This issue is fixed. -
Ixia Chassis & Appliances(Novus, AresOne): If multiple routes are received by a BGP/BGP+ peer with some having MED/Local Preference and some not having MED/Local Preference, in
get_states
MED/Local Preference were not being correctly returned. This issue is fixed.
Known Issues
- Ixia Chassis & Appliances(Novus, AresOne): If
keng-layer23-hw-server
version is upgraded/downgraded, the ports which will be used from this container must be rebooted once before running the tests. - Ixia Chassis & Appliances(Novus, AresOne):
StartProtocols
/set_control_state.protocol.all.start
can get stuck till the time all DHPCv4/v6 clients receive the leased IPv4/v6 addresses from the DHCPv4/v6 server/relay agent. This may result in getting"context deadline exceeded"
error in the test program. - UHD400: Packets will not be transmitted if
flows[i].rate.pps
is less than 50. - UHD400:
values
for fields in flow packet headers can be created with maximum length of 1000 values. - Ixia-C: Flow Tx is incremented for flow with tx endpoints as LAG, even if no packets are sent on the wire when all active links of the LAG are down.
- Ixia-C: Supported value for
flows[i].metrics.latency.mode
iscut_through
. - Ixia-C: The metric
loss
in flow metrics is currently not supported. - Ixia-C: When flow transmit is started, transmission will be restarted on any existing flows already transmitting packets.
Release v1.13.0-1
Build Details
Component | Version |
---|---|
Open Traffic Generator API | 1.13.0 |
snappi | 1.13.0 |
gosnappi | 1.13.0 |
keng-controller | 1.13.0-1 |
ixia-c-traffic-engine | 1.8.0.25 |
keng-app-usage-reporter | 0.0.1-52 |
ixia-c-protocol-engine | 1.00.0.399 |
keng-layer23-hw-server | 1.13.0-3 |
keng-operator | 0.3.30 |
otg-gnmi-server | 1.14.14 |
ixia-c-one | 1.13.0-1 |
UHD400 | 1.4.0 |
Release Features(s)
-
gosnappi:
gosnappi
is updated to work withgo
>=v1.21
.- Older versions of
go
are no longer supported.- When older version of
go
is installed on the server, User will be liable to get errors like"slices: package slices is not in GOROOT (/root/.local/go/src/slices)"
.
- When older version of
Note:
keng-controller
andotg-gnmi-server
are upgraded to usego
v1.23
. - Older versions of
-
Ixia-C, Ixia Chassis & Appliances(Novus, AresOne), UHD400: Support added for BGP GracefulRestart Notification Enhancement based on RFC8538.
- To enable advertisement of Notification support in GracefulRestart capability:
peer.GracefulRestart().SetEnableNotification(true)
- To optionally send Notification when peer is going down during
InitiateGracefulRestart
trigger:
grAction := gosnappi.NewControlAction() bgpPeersRestart := grAction.Protocol().Bgp().InitiateGracefulRestart() bgpPeersRestart. SetPeerNames([]string{"peer1"}). SetRestartDelay(20) notification:= bgpPeersRestart.Notification() if sendHardReset == true { notification.Cease().SetSubcode( gosnappi.DeviceBgpCeaseErrorSubcode.HARD_RESET_CODE6_SUBCODE9) } else { /* Send anything else except hard reset */ notification.Cease().SetSubcode( gosnappi.DeviceBgpCeaseErrorSubcode.OUT_OF_RESOURCES_CODE6_SUBCODE8) }
-
Ixia Chassis & Appliances(Novus, AresOne): Support added to update traffic rate on the fly.
req := gosnappi.NewConfigUpdate() reqFlow := req.Flows().SetPropertyNames([]gosnappi.FlowsUpdatePropertyNamesEnum{ gosnappi.FlowsUpdatePropertyNames.RATE, }) f1.Rate().SetPps(100) // f1 is an existing flow in the config reqFlow.Flows().Append(f1) gosnappi.NewApi().UpdateConfig(req)
Bug Fix(s)
- UHD400: Issue where
flows[i].packet.ipv6.dst.increment
was not being reflected in transmitted packets when two or more flows were configured, is now fixed.
Known Issues
- Ixia Chassis & Appliances(Novus, AresOne): If
keng-layer23-hw-server
version is upgraded/downgraded, the ports which will be used from this container must be rebooted once before running the tests. - Ixia Chassis & Appliances(Novus, AresOne):
StartProtocols
/set_control_state.protocol.all.start
can get stuck till the time all DHPCv4/v6 clients receive the leased IPv4/v6 addresses from the DHCPv4/v6 server/relay agent. This may result in getting"context deadline exceeded"
error in the test program. - UHD400: Packets will not be transmitted if
flows[i].rate.pps
is less than 50. - UHD400:
values
for fields in flow packet headers can be created with maximum length of 1000 values. - Ixia-C: Flow Tx is incremented for flow with tx endpoints as LAG, even if no packets are sent on the wire when all active links of the LAG are down.
- Ixia-C: Supported value for
flows[i].metrics.latency.mode
iscut_through
. - Ixia-C: The metric
loss
in flow metrics is currently not supported. - Ixia-C: When flow transmit is started, transmission will be restarted on any existing flows already transmitting packets.
Release v1.12.0-1
Build Details
Component | Version |
---|---|
Open Traffic Generator API | 1.12.0 |
snappi | 1.12.0 |
gosnappi | 1.12.0 |
keng-controller | 1.12.0-1 |
ixia-c-traffic-engine | 1.8.0.25 |
keng-app-usage-reporter | 0.0.1-52 |
ixia-c-protocol-engine | 1.00.0.398 |
keng-layer23-hw-server | 1.12.0-1 |
keng-operator | 0.3.30 |
otg-gnmi-server | 1.14.12 |
ixia-c-one | 1.12.0-1 |
UHD400 | 1.3.5 |
Release Features(s)
-
Ixia Chassis & Appliances(Novus, AresOne): Support added for DHCPv6 client interfaces to be used as source/destination for device traffic.
- In this the learned IPv6 address from the DHCPv6 server is automatically populated in
ipv6.src/dst
if the choice is set to auto.dhcp.
clientToServerFlow.SetName("ClientToServer").TxRx().Device(). SetTxNames([]string{"DHCPv6ClientName"}). SetRxNames([]string{"DHCPv6ServerInterfaceName"}) clientToServerFlow.Packet().Add().Ethernet() clientToServerFlowIp := clientToServerFlow.Packet().Add().Ipv6() clientToServerFlowIp.Src().Auto().Dhcp() serverToClientFlow.SetName("ServerToClient").TxRx().Device(). SetTxNames([]string{"DHCPv6ServerInterfaceName"}). SetRxNames([]string{"DHCPv6ClientName"}) serverToClientFlow.Packet().Add().Ethernet() serverToClientFlowIp := serverToClientFlow.Packet().Add().Ipv6() serverToClientFlowIp.Dst().Auto().Dhcp()
Note: For DHCPv6 client to DHCPv6 server each flow supports only one source endpoint in tx_rx.device.tx_names, hence a separate flow has to be configured for each DHCPv6 client if packet[i].ipv6.src.auto.dhcp is set.
- In this the learned IPv6 address from the DHCPv6 server is automatically populated in
-
Ixia Chassis & Appliances(Novus, AresOne): Support added for
devices[i].ethernets[j].dhcpv6_interfaces[k].options/options_request
anddevices[i].dhcp_server.ipv6_interfaces[j].options
.// Configure a DHCPv6 Client dhcpv6Client := d1Eth1.Dhcpv6Interfaces().Add(). SetName("DHCPv6-Client") ......... //options dhcpv6Client.Options().VendorInfo(). SetEnterpriseNumber(1000). OptionData(). Add(). SetCode(88). SetData("enterprise") dhcpv6Client.Options().VendorInfo().AssociatedDhcpMessages().All() //option request dhcpv6Client.OptionsRequest().Request().Add().BootfileUrl() dhcpv6Client.OptionsRequest().Request().Add().Custom().SetType(3) dhcpv6Client.OptionsRequest().AssociatedDhcpMessages().All() // Configure a DHCPv6 Server dhcpv6Server := d2.DhcpServer().Ipv6Interfaces().Add(). SetName("DHCPv6-Server") ............ dhcpv6Server.Options().BootfileUrl().SetUrl("URL").AssociatedDhcpMessages().All() dhcpv6Server.Options().Dns().SetPrimary("8::8").SecondaryDns().Add().SetIp("9::9")
-
Ixia Chassis & Appliances(Novus, AresOne): Support added for
devices[i].dhcp_server.ipv6_interfaces[j].leases[k].ia_type.choice.iapd/ianapd
.// Configure a DHCPv6 Server dhcpv6Server := d2.DhcpServer().Ipv6Interfaces().Add(). SetName("DHCPv6-Server") dhcpv6ServerPool := dhcpv6Server.SetIpv6Name("p2d1ipv6"). Leases().Add(). SetLeaseTime(3600) IaType := dhcpv6ServerPool.IaType().Iapd() IaType. SetAdvertisedPrefixLen(64). SetStartPrefixAddress("2000:0:0:100::0"). SetPrefixStep(1). SetPrefixSize(10)
-
Ixia-c: Support added for sending Organizational tlvs in LLDP PDUs.
lldp := config.Lldp().Items()[0] orgInfos1 := lldp.OrgInfos().Add() orgInfos1.Information().SetInfo("AABB11") orgInfos1.SetOui("1abcdf").SetSubtype(1)
Note: Received Organizational tlvs can be seen in the
get_states
response oflldp_neighbors
.
Known Issues
- Ixia Chassis & Appliances(Novus, AresOne): If
keng-layer23-hw-server
version is upgraded/downgraded, the ports which will be used from this container must be rebooted once before running the tests. - Ixia Chassis & Appliances(Novus, AresOne):
StartProtocols
/set_control_state.protocol.all.start
can get stuck till the time all DHPCv4/v6 clients receive the leased IPv4/v6 addresses from the DHCPv4/v6 server/relay agent. This may result in getting"context deadline exceeded"
error in the test program. - UHD400: Packets will not be transmitted if
flows[i].rate.pps
is less than 50. - UHD400:
values
for fields in flow packet headers can be created with maximum length of 1000 values. - Ixia-C: Flow Tx is incremented for flow with tx endpoints as LAG, even if no packets are sent on the wire when all active links of the LAG are down.
- Ixia-C: Supported value for
flows[i].metrics.latency.mode
iscut_through
. - Ixia-C: The metric
loss
in flow metrics is currently not supported. - Ixia-C: When flow transmit is started, transmission will be restarted on any existing flows already transmitting packets.
Release v1.8.0-1
Build Details
Component | Version |
---|---|
Open Traffic Generator API | 1.8.0 |
snappi | 1.8.0 |
gosnappi | 1.8.0 |
keng-controller | 1.8.0-1 |
ixia-c-traffic-engine | 1.8.0.25 |
keng-app-usage-reporter | 0.0.1-52 |
ixia-c-protocol-engine | 1.00.0.393 |
keng-layer23-hw-server | 1.8.0-1 |
keng-operator | 0.3.30 |
otg-gnmi-server | 1.14.8 |
ixia-c-one | 1.8.0-1 |
UHD400 | 1.3.5 |
Release Features(s)
-
Ixia Chassis & Appliances(Novus, AresOne): Support added for DHCPv6 Client and Server in control plane. details
- User will be the able to configure DHCPv6 Client and Server by the following code snippet.
// Configure a DHCP Client dhcpv6client := d1Eth1.Dhcpv6Interfaces().Add(). SetName("p1d1dhcpv61") dhcpv6client.IaType().Iata() dhcpv6client.DuidType().Llt() // Configure a DHCPv6 Server d1Dhcpv6Server := d2.DhcpServer().Ipv6Interfaces().Add(). SetName("p2d1Dhcpv6Server1"). d1Dhcpv6ServerPool := d1Dhcpv6Server.SetIpv6Name("p2d1ipv6"). Leases().Add(). SetLeaseTime(3600) IaType := d1Dhcpv6ServerPool.IaType().Iata() IaType. SetStartAddress("2000:0:0:1::100"). SetStep(1). SetSize(10). SetPrefixLen(64)
Note: Support for
devices[i].dhcp_server.ipv6_interfaces[j].options
anddevices[i].dhcp_server.ipv6_interfaces[j].leases[k].ia_type.choice.iapd/ianapd
will be available in the subsequent sprints. -
Ixia Chassis & Appliances(Novus, AresOne): gNMI support added to fetch control plane metics and states of DHCPv6 Client and Server.
- Support added for DHCPv6 Client/Server metrics using following gNMI paths.
// dhcpv6 client dhcpv6-clients/dhcpv6-client[name=*]/state/counters // dhcpv6 server dhcpv6-servers/dhcpv6-server[name=*]/state/counters
- Support added for DHCPv6 Client/Server states using following gNMI paths.
// dhcpv6 client dhcpv6-clients/dhcpv6-client[name=*]/state/interface // dhcpv6 server dhcpv6-servers/dhcpv6-server[name=*]/state/interface
Known Issues
- Ixia Chassis & Appliances(Novus, AresOne): If
keng-layer23-hw-server
version is upgraded/downgraded, the ports which will be used from this container must be rebooted once before running the tests. - Ixia Chassis & Appliances(Novus, AresOne):
StartProtocols
/set_control_state.protocol.all.start
can get stuck till the time all DHPCv4/v6 clients receive the leased IPv4/v6 addresses from the DHCPv4/v6 server/relay agent. This may result in getting"context deadline exceeded"
error in the test program. - UHD400: Packets will not be transmitted if
flows[i].rate.pps
is less than 50. - UHD400:
values
for fields in flow packet headers can be created with maximum length of 1000 values. - Ixia-C: Flow Tx is incremented for flow with tx endpoints as LAG, even if no packets are sent on the wire when all active links of the LAG are down.
- Ixia-C: Supported value for
flows[i].metrics.latency.mode
iscut_through
. - Ixia-C: The metric
loss
in flow metrics is currently not supported. - Ixia-C: When flow transmit is started, transmission will be restarted on any existing flows already transmitting packets.
Release v1.7.2-1
Build Details
Component | Version |
---|---|
Open Traffic Generator API | 1.7.1 |
snappi | 1.7.2 |
gosnappi | 1.7.2 |
keng-controller | 1.7.2-1 |
ixia-c-traffic-engine | 1.8.0.25 |
keng-app-usage-reporter | 0.0.1-52 |
ixia-c-protocol-engine | 1.00.0.392 |
keng-layer23-hw-server | 1.7.1-4 |
keng-operator | 0.3.30 |
otg-gnmi-server | 1.14.7 |
ixia-c-one | 1.7.2-1 |
UHD400 | 1.3.5 |
Release Features(s)
-
Ixia Chassis & Appliances(Novus, AresOne): Support added for new traffic applying infrastructure.
- Instead of "Failed to apply flow configurations due to: Please contact Ixia Support." ,
- In scenarios where underlying hardware module doesn't have the resources to apply the flow a proper error message such as "Failed to apply flow configurations due to: Error occurred for flow 'ipv6flowlabel': The Tx Ports of the flow do not support the combinations of fields and size of value lists configured. Please reduce the size of the value lists or/and fields with value lists configured or use a load module ( or variant) with more resources." Based on this either test can be modified or appropriate load modules can be used for the test.
- There were certain scenarios with large
values
in packet fields in the flows which were failing with above error inspite of being within the modules capabilities and can now be applied without any error.
- Earlier configuration with multiples flows with large
values
in packet fields would fail with error as "Failed to apply flow configurations due to: Traffic configuration exceeds port background memory size.". This issue is also fixed with the upgrade to new traffic applying infrastructure. - Issue where correct
values
/increment
/decrement
forethernet.src/dst
was not being transmitted on the wire is fixed. - In this new infrastructure, traffic will be directly applied to the hardware ports resulting in better performance on
set_transmit_state
.
- Instead of "Failed to apply flow configurations due to: Please contact Ixia Support." ,
-
gosnappi: Client side file organization of the
gosnappi
sdk is modified to allow for better auto-completion support when writing test programs.
Note: Client must be upgraded to gosnappi v1.7.2. -
Ixia-C, UHD400: Support added for DHCPv4 Client and Server in control plane. details
- User will be the able to configure DHCPv4 Client and Server by the following code snippet. More comprehensive B2B example
// Configure a DHCP Client dhcpclient := d1Eth1.Dhcpv4Interfaces().Add(). SetName("p1d1dhcpv41") dhcpclient.FirstServer() dhcpclient.ParametersRequestList(). SetSubnetMask(true). SetRouter(true). SetRenewalTimer(true) // Configure a DHCP Server d2Dhcpv4Server := d2.DhcpServer().Ipv4Interfaces().Add(). SetName("p2d1dhcpv4server") d2Dhcpv4Server.SetIpv4Name("p2d1ipv4").AddressPools(). Add().SetName("pool1"). SetLeaseTime(3600). SetStartAddress("100.1.100.1"). SetStep(1). SetCount(1). SetPrefixLength(16).Options().SetRouterAddress("100.1.0.1").SetEchoRelayWithTlv82(true)
-
Ixia-C, Ixia Chassis & Appliances(Novus, AresOne), UHD400: Support added for
random
in following flow fields. details-
ipv4.src/dst
-
ipv6.flow_label
-
tcp.src_port/dst_port
-
udp.src_port/dst_port
- User can configure by using following snippet.
ipv6 := flow1.Packet().Add().Ipv6() ipv6.FlowLabel().Random().SetMin(1).SetMax(1048574).SetCount(250000).SetSeed(1)
Note: For UHD400 an intermittent issue is present on using
random
, whererx
fields offlow_metrics
can return zero values. - User can configure by using following snippet.
-
-
Ixia-C: New environment variable
OPT_ADAPTIVE_CPU_USAGE=""
is introduced for docker based ixia-c-traffic-engine setups which enables adaptive CPU usage on therx
port for a flow. By default a non adaptive receiver is used when therx
CPU core usage reaches up to 100%. The adaptive receiver reducesrx
CPU core usage from 100% to less than 5% in idle mode. To disable the adaptive receiver please remove this environment variable from docker run command. It is recommended to also pin therx
to specific cpu cores using theARG_CORE_LIST
environment variable when enablingOPT_ADAPTIVE_CPU_USAGE
.- Example docker usage:
docker run --net=host --privileged --rm -d \ -e OPT_LISTEN_PORT="5555" \ -e ARG_CORE_LIST="1 2 3" \ -e ARG_IFACE_LIST="virtual@af_packet,enp7s0" \ -e OPT_NO_HUGEPAGES="Yes" \ -e OPT_ADAPTIVE_CPU_USAGE="" \ --name ixia-c-traffic-engine \ ixia-c-traffic-engine:1.8.0.25
Bug Fix(s)
-
Ixia Chassis & Appliances(Novus, AresOne): Issue where
flow_metrics
were not being returned within timeout resulting in "Could not send message, error: unexpected queue Get(1) error: queue: disposed" and "Stats may be inconsistent" error is fixed. -
Ixia Chassis & Appliances(Novus, AresOne): Issue where BGP/BGP+ learned information containing
origin
of typeincomplete
was not being returned properly byget_states
is fixed. This would result in deserialization error while accessing BGP/BGP+ learned information usingotg-gNMI-server
. -
Ixia Chassis & Appliances(AresOne): Issue where
port_metrics
were not available when load module of type1 x 400G AresOne-M
with transceiver of type800GE LAN QSFP-DD
was being used, is fixed. -
Ixia Chassis & Appliances(Novus, AresOne): Issue where
set_control_state.protocol.route.state=withdraw/advertise
is triggered with an emptynames
field, all configured route ranges were being not withdrawn or advertised, is fixed. -
Ixia Chassis & Appliances(Novus, AresOne): Issue where on
set_control_state.protocol.all.state=start
, al1
up/down
event was triggered even whenl1
state was alreadyup
, is now fixed.Note: If port is in
down
state, it has to be brought back toup
state before starting a test.
Known Issues
- Ixia Chassis & Appliances(Novus, AresOne): If
keng-layer23-hw-server
version is upgraded/downgraded, the ports which will be used from this container must be rebooted once before running the tests. - Ixia Chassis & Appliances(Novus, AresOne):
StartProtocols
/set_control_state.protocol.all.start
can get stuck till the time all DHPCv4 clients receive the leased IPv4 addresses from the DHCPv4 server/relay agent. This may result in getting"context deadline exceeded"
error in the test program. - UHD400: Packets will not be transmitted if
flows[i].rate.pps
is less than 50. - UHD400:
values
for fields in flow packet headers can be created with maximum length of 1000 values. - Ixia-C: Flow Tx is incremented for flow with tx endpoints as LAG, even if no packets are sent on the wire when all active links of the LAG are down.
- Ixia-C: Supported value for
flows[i].metrics.latency.mode
iscut_through
. - Ixia-C: The metric
loss
in flow metrics is currently not supported. - Ixia-C: When flow transmit is started, transmission will be restarted on any existing flows already transmitting packets.
Release v1.6.2-13
Build Details
Component | Version |
---|---|
Open Traffic Generator API | 1.6.2 |
snappi | 1.6.2 |
gosnappi | 1.6.2 |
keng-controller | 1.6.2-13 |
ixia-c-traffic-engine | 1.8.0.12 |
keng-app-usage-reporter | 0.0.1-52 |
ixia-c-protocol-engine | 1.00.0.390 |
keng-layer23-hw-server | 1.6.2-4 |
keng-operator | 0.3.30 |
otg-gnmi-server | 1.14.6 |
ixia-c-one | 1.6.2-13 |
UHD400 | 1.3.3 |
Release Features(s)
-
Ixia-C, Ixia Chassis & Appliances(Novus, AresOne): gNMI support added for
first-timestamp
andlast-timestamp
in flow metrics. details- User needs to set
flows[i].metrics.timestamps=true
to fetch these new fields.
module: open-traffic-generator-flow +--rw flows +--ro flow* [name] +--ro name -> ../state/name +--ro state | +--ro name? string ......... | +--ro first-timestamp? decimal64 | +--ro last-timestamp? decimal64
- User needs to set
Bug Fix(s)
-
Ixia Chassis & Appliances(Novus, AresOne): Issue where
devices[i].rsvp.ipv4_interfaces[j].summary_refresh_interval
was not setting correctly, is fixed. -
Ixia Chassis & Appliances(Novus, AresOne): Issue where destination mac address was not getting resolved properly for traffic over ISIS IPv6 routes, is fixed.
Known Issues
- Ixia Chassis & Appliances(Novus, AresOne): If
keng-layer23-hw-server
version is upgraded/downgraded, the ports which will be used from this container must be rebooted once before running the tests. - Ixia Chassis & Appliances(Novus, AresOne):
StartProtocols
/set_control_state.protocol.all.start
can get stuck till the time all DHPCv4 clients receive the leased IPv4 addresses from the DHCPv4 server/relay agent. This may result in getting"context deadline exceeded"
error in the test program. - UHD400: Packets will not be transmitted if
flows[i].rate.pps
is less than 50. - UHD400:
values
for fields in flow packet headers can be created with maximum length of 1000 values. - Ixia-C: Flow Tx is incremented for flow with tx endpoints as LAG, even if no packets are sent on the wire when all active links of the LAG are down.
- Ixia-C: Supported value for
flows[i].metrics.latency.mode
iscut_through
. - Ixia-C: The metric
loss
in flow metrics is currently not supported. - Ixia-C: When flow transmit is started, transmission will be restarted on any existing flows already transmitting packets.
Release v1.6.2-1
Build Details
Component | Version |
---|---|
Open Traffic Generator API | 1.6.2 |
snappi | 1.6.2 |
gosnappi | 1.6.2 |
keng-controller | 1.6.2-1 |
ixia-c-traffic-engine | 1.8.0.12 |
keng-app-usage-reporter | 0.0.1-52 |
ixia-c-protocol-engine | 1.00.0.390 |
keng-layer23-hw-server | 1.6.2-1 |
keng-operator | 0.3.30 |
otg-gnmi-server | 1.14.4 |
ixia-c-one | 1.6.2-1 |
UHD400 | 1.3.3 |
Release Features(s)
-
Ixia Chassis & Appliances(Novus, AresOne): Support added for DHCPv4 client interfaces to be used as source/destination for device traffic.
- In this the learned IPv4 address from the DHCPv4 server is automatically populated in
ipv4.src/dst
if the choice is set toauto.dhcp
.
clientToServerFlow.SetName("ClientToServer").TxRx().Device(). SetTxNames([]string{"DHCPv4ClientName"}). SetRxNames([]string{"DHCPv4ServerInterfaceName"}) clientToServerFlowIp := clientToServerFlow.Packet().Add().Ipv4() clientToServerFlowIp.Src().Auto().Dhcp() serverToClientFlow.SetName("ServerToClient").TxRx().Device(). SetTxNames([]string{"DHCPv4ServerInterfaceName"}). SetRxNames([]string{"DHCPv4ClientName"}) serverToClientFlowIp := serverToClientFlow.Packet().Add().Ipv4() serverToClientFlowIp.Dst().Auto().Dhcp()
Note: For DHCPv4 client to DHCPv4 server each flow supports only one source endpoint in
tx_rx.device.tx_names
, hence a separate flow has to be configured for each DHCPv4 client ifpacket[i].ipv4.src.auto.dhcp
is set. - In this the learned IPv4 address from the DHCPv4 server is automatically populated in
-
Ixia-C: Support added for multiple address groups in BGPv4/v6 routes.
route = peer.V4Routes().Add(). SetNextHopIpv4Address("2.2.2.2"). SetName("peer1.rr1") route.Addresses().Add(). SetAddress("20.20.20.1").SetPrefix(32).SetCount(2).SetStep(2) route.Addresses().Add(). SetAddress("20.20.21.1").SetPrefix(32).SetCount(2).SetStep(2)
Bug Fix(s)
-
Ixia-C, Ixia Chassis & Appliances(Novus, AresOne): Issue where if a BGPv4/v6 prefix with extended-community or community attributes was updated via a BGP Update with the extended-community or community attribute deleted without a Route Withdraw in between , the subsequent get_states call on the bgp prefixes would incorrectly continue to show the extended-community or community attributes learned via the previous received Update is fixed.
-
Ixia-C: Issue where if a test was setup such that only test port would initiate ARP/ND and time taken to configure the soft-DUT connected to the test port was taking extended time such that it would not respond to ARP/ND requests within 10s, ARP/ND procedures would fail resulting in test failures in ARP/ND verification step is fixed.
-
Ixia-C: Issue where if a IPv6 address on the emulated interface was configured in non-shortest format e.g.
2001:0db8::192:0:2:2
instead of2001:db8::192:0:2:2
(notice the redundant leading 0 in :0db8), the test port would not initiate IPv6 Neighbor Discovery for corresponding IPv6 gateway result in Neighbor Discovery failure is fixed. -
Keng-Operator: Some fixes are provided to handle security warnings raised by k8s security scanning tool such as
'container "manager" in Deployment "ixiatg-op-controller-manager" does not set readOnlyRootFilesystem: true in its securityContext. This setting is encouraged because it can prevent attackers from writing malicious binaries into runnable locations in the container filesystem.'
. -
UHD400: Issue is fixed where
frames_rx
is reported twice offrames_tx
inflow_metrics
is fixed.
Known Issues
- Ixia Chassis & Appliances(Novus, AresOne): If
keng-layer23-hw-server
version is upgraded/downgraded, the ports which will be used from this container must be rebooted once before running the tests. - Ixia Chassis & Appliances(Novus, AresOne):
StartProtocols
/set_control_state.protocol.all.start
can get stuck till the time all DHPCv4 clients receive the leased IPv4 addresses from the DHCPv4 server/relay agent. This may result in getting"context deadline exceeded"
error in the test program. - UHD400: Packets will not be transmitted if
flows[i].rate.pps
is less than 50. - UHD400:
values
for fields in flow packet headers can be created with maximum length of 1000 values. - Ixia-C: Flow Tx is incremented for flow with tx endpoints as LAG, even if no packets are sent on the wire when all active links of the LAG are down.
- Ixia-C: Supported value for
flows[i].metrics.latency.mode
iscut_through
. - Ixia-C: The metric
loss
in flow metrics is currently not supported. - Ixia-C: When flow transmit is started, transmission will be restarted on any existing flows already transmitting packets.