Releases: BroadbandForum/obudpst
Multi-Key and Header Checksum (v8.2.0)
This release addresses the need to always handle interface byte counters as 64-bit values,
regardless of the machine architecture (OBUDPST-56). Also, for improved management of large-scale
deployments multi-key support has been added (OBUDPST-57). This capability allows for up to 256
authentication keys to be specified via a key file. The legacy authentication key from the
command-line is still supported and will act as a backup validation option to the key file if
provided.
Integrity checks for PDUs were enhanced via a compilation flag to insert an optional PDU header
checksum into control and data PDUs (OBUDPST-58). This functionality is needed when the standard UDP
checksum is not being utilized by either the sender or receiver system. Changes for OBUDPST-57 and
OBUDPST-58 resulted in the supported protocol version range on the server going from 10-10 to 10-11
(i.e., the server will continue to support existing version 10 clients, see README for details).
In addition,...
- Several minor compiler warnings were corrected
- Enhanced integrity checks will generate alerts for invalid control PDUs and warnings for invalid
data PDUs (both can be suppressed via compilation flags, causing them to be silently ignored) - The maximum requestable bandwidth on the client, when using the "-B mbps" option, was increased from
10000 to 32767 - The 64-bit ntohll/htonll macros were modified to accommodate big-endian architectures
- An additional column for lost status feedback messages was added to the metadata export
- The maximum authentication key size was increase from 32 to 64
- A new ErrorStatus error value for multi-key and warning value for invalid data PDUs was added
- An additional column for interface Mbps (from "-E intf") was added to the metadata export
- A fix was added for scenarios where a timeout occurs, due to a lost test activation request, and
the allocated upstream bandwidth on the server is never deallocated
Data Export and New Error Codes (v8.1.0)
The main feature in this release is the option of exporting received load traffic metadata (sequence numbers, timestamps,...) in CSV format. See README for feature details.
Also in this release, the ErrorStatus values used in the JSON output have been made much more granular (instead of just 1 for warning and -1 for error). Now, warnings are allocated values starting at 1 (one) - although only a handful are currently used. Error values start at 50 and can go up to a maximum of 255 (see udpst.h for details). Additionally, an ErrorMessage2 text field was also added to better communicate the cause-and-effect relationship between typical message pairs.
Tenth Release, Major Version 8.0.0
The primary new feature in this release is support for multiple connections (UDP flows) between
the client and one or more server instances (i.e., distributed servers). Additionally,...
- Reducing the starting sending rate (for index 0) while adding support for randomized packet sizes
- Stopping possible attacks that prevent graceful test shutdown by manipulating STOP bits in load PDUs
- Adding an optional '-1' (dash one) flag to the command-line to have the server cleanly exit after a single test
- Randomizing the start of load PDU generation (to better support multiple connections)
- Enhancing socket receive processing to provide load balancing of epoll events (to better support multiple connections)
- Adding GSO (Generic Segmentation Offload) and RecvMMsg()+Truncation performance optimizations
- Adding optional rate limiting for server scale testing
- Creation of framework to support automated functional tests via Docker containers and NetEm
With these changes, new fields were required in the setup and load PDUs. As a result,
both the current and minimum protocol version needed to be bumped to 10.
Ninth Public Release: new default to ignore reordered and duplicate packets in load adjustment algo.
This release has one new feature, which is a response to testing/experience on mobile access:
The team made the decision to change a default setting: UDPST will now Ignore Reordering (and duplication) in the Load Adjustment search algorithm. The Reordered and Duplicate packets are legitimate contributions to IP-Layer Capacity. The utility measures these metrics under all conditions, this only affects search processing in Type B and Type C algorithms.
Also, this release makes several updates to documentation (reflecting the latest features implemented in the utility).
7.5.0 Optional Type C Load Adj. Multiply and Retry
This release has one major new feature, which was anticipated by the version 9 protocol:
- Optional Load Adjustment (Search) Algorithm, Type C, briefly described as "Multiply and Retry"
- The "fast" ramp-up is now a multiplicative rate increase to congestion, reaching 1Gbps in ~1 second
- The "fast" ramp-up can be re-tried when conditions warrent, to ensure that the Max IP-Layer Capacity is reached
- This algorithm supports a search over the full range of rates, even if the subscribed rate is >1Gbps
- The Type B algorithm remains the default, for testing that does not benefit from "Multiply and Retry" aspects
- The Sending Rate Table was extended to 40Gbps on the high end.
7.4.0 Bandwidth Management and More
See the CHANGELOG.MD file
7.3.0 Release
This release has a greatly expanded (optional) JSON-formatted version of the command-line output.
Further, this release implements virtually all the TR-471 Issue 2 and TR-181 IPLayerCapacity{} data model elements.
The File "ob-udpst output mapping to (current) JSON and TR-471 info model-v33-20211118_071424.pdf" provides the mapping
where names differ in small ways, or where additional names are provided in the JSON format or STDOUT.
We also include measurement of Ethernet Interface traffic during a test, to help identify when customer traffic was
present that might cause the IP-Layer Capacity measurement to under-estimate the maximum capacity.
7.2.1 Supplemental Release to 7.2.0
New Default values for seqErrThresh and slowAdjThresh.
New discussion of Default values in README.md, and circumstances when test orgs. should consider changes to the default values. In other words, the defaults are provided as a starting point; any test campaign should consider whether one or more default values need to be changed for their specific circumstances!
Fourth Public Release 2021-07-16
This release has the first features for compute environment adaptation:
- OS limitations (detect sendmsg()-only or sendmmsg()-available)
- clock precision limitations and/or CPU power limitations (a pre-compile option)
Also, an optional JSON-formatted version of the command-line output.
Thrid Public Release
There have been several requests to describe the control protocol used in the UDPST utility. There is a good high-level description of the various protocol phases in the README.md file. Some issues and requests required new protocol versions to address them, and a more complete description/specification is desired by the OP-UDPST participants.
This release includes guards in the .h files to avoid errors