VelocityDRIVE-SP-2026.09 Release Notes
1. 2026.09
Version: 2026.09 Previous Version: 2026.06-1 Release date: 2026-09-25 Type: Roadmap release YANG Catalog SHA: b9a283a2c36b799683c792d8a0c21559
1.1. New runtime features
1.1.1. IGMP Snooping added
IGMPv2/v3 Snooping has been added. It constrains IPv4 multicast forwarding to
the ports that have active listeners, instead of flooding multicast to every
member port of a VLAN. The implementation covers IGMPv3 (RFC 3376) with
backward compatibility for IGMPv2 (RFC 2236) and is based on lightweight
snooping protocol (RFC 5790). It is configured and monitored via the RFC 9166
YANG model (ietf-igmp-mld-snooping) over CORECONF/CoAP.
See the IGMP Snooping guide for configuration examples, and the igmp-snooping-instance YANG model.
1.1.2. ACL2: New ACL YANG model
A new ACL YANG module (mchp-velocitysp-acl2) replaces the previous
mchp-velocitysp-acl model. The two modules co-exist during a transition
period — the old module is still accepted on input but read requests return no
data; the ACL2 module backs both.
The key changes in ACL2:
-
It is now possible to utilize 3 different lookup in the HW. To introduce this change rules are keyed by
[lookup id]rather than a single id. Thelookupselects the VCAP IS2 lookup that holds the rule, so the same rule id can be used once per lookup, and a frame is matched against every lookup. -
A
priorityleaf sets the search order within a lookup (lowest first). -
A read-only
statusleaf reports whether a rule can be hit at all, depending on the per-lookup key types inacl-key-types. -
Match parameters are split into
common-match-paramsand a frame-type specific container (frame-etype,frame-ipv4,frame-ipv6). -
Actions are grouped in an
actionscontainer that also carries the newmirror-enableflag.
See the ACL configuration guide for configuration examples, and the acl2 YANG model.
The old mchp-velocitysp-acl model has been obsoleted, and is
planned to be removed in the 2027.06 release (last planned version to include it
is 2027.03). Existing configurations using it should be migrated to
mchp-velocitysp-acl2 before the 2027.06 release.
|
During the transition period (until and including the 2027.03 release),
configuration stored in the startup config will be loaded using the backwards
compatibility, the resulting config should be saved to startup-config to migrate
the persisted config to the new YANG. Read/fetch requests on the old
mchp-velocitysp-acl model will not return any data.
|
1.1.3. Test Frame Generator added
A line-rate frame load has been added for driving front ports with traffic - useful for hardware bring-up and stress testing. This feature is different from the port-test YANG added in the earlier release in the sense that it accepts a port list and can generate traffic on one or more ports in parallel, and this feature does not do any looping or inspection of counters - this must be done by the operator.
The load is controlled via the mchp-velocitysp-frame YANG module under
CORECONF/CoAP. A port used for management must be excluded from
egress-port-list, as every driven port discards incoming frames and the
deactivation command would then be undeliverable.
See the Frame Generator guide for details and the mchp-velocitysp-frame YANG model.
1.1.4. MUP1: State machine status counters added
The MUP1 serial transport now exposes a set of read-only state machine counters
under mup1-config/status. The counters track MUP1 link events (frames
received, frames sent, resync events) and can be read via a CORECONF FETCH.
See the MUP1 status section for FETCH examples and the mup1-config/status YANG model.
1.1.5. PTP: configurable frame TX priority
A new frame-tx-prio leaf has been added to the PTP instance configuration
(ieee1588-ptp). It allows the CoS priority of PTP-generated frames to be
set explicitly, instead of relying on the default.
See the frame-tx-prio YANG leaf.
1.1.6. LLDP: configurable message Tx interval
The LLDP global message transmission interval is now configurable via the
msg-tx-interval leaf in the LLDP instance configuration. In addition, the
implementation now starts a fast transmission burst whenever a port comes up,
accelerating neighbor discovery after a link event.
See the LLDP configuration guide for FETCH and iPATCH examples.
1.1.7. LLDP: Organizationally Specific TLV transmission
Custom Organizationally Specific TLVs can now be configured for transmission
via the new remote-org-tlv-xmt table in the LLDP port configuration. The
OUI is a 24-bit number written in decimal; the information field is base64.
Every received Organizationally Specific TLV is also reported in the status
subtree.
See the LLDP configuration guide for configuration examples, and the remote-org-tlv-xmt YANG model.
1.1.8. Firmware update: chunked upload support
The firmware update PUT endpoint now accepts an ?offset=n query parameter,
allowing the firmware image to be uploaded in multiple chunks. This makes it
possible to perform firmware updates over transports with limited block sizes
without holding the entire image in the client’s memory.
See the Firmware Update guide for the chunked upload protocol.
1.1.9. System: memory usage monitoring
The /system/memory container (under mchp-velocitysp-system) is now
accessible via CORECONF. It exposes the used and free heap figures and a
per-capability breakdown list so that memory consumption can be attributed to
individual protocol modules.
The figures are a snapshot taken once at the end of boot-time
initialisation and do not change at runtime, so polling the container returns
the same values. The per-capability list is not a complete accounting either:
the sum of its bytes values is strictly less than used, because
non-capability memory (module state, drivers, MESA-internal tables) is not
itemised.
|
See the System configuration guide for FETCH examples, and the system/memory YANG model.
1.1.10. System: source revision exposed
A new source-revision leaf under /system-state/platform (in
mchp-velocitysp-system) exposes the full (unabbreviated) git SHA of the
firmware image currently running. This makes it straightforward to trace an
installed image back to the exact source commit it was built from.
See the system-state/platform/source-revision YANG leaf.
1.2. New HW Support
1.2.1. LAN969x: unified PHY driver set and VSC8504/VSC8574 support
The VDSP_BIN_LAN969x and VDSP_BIN_LAN969x_AUTO binary variants previously
had exclusive PHY sets. They now ship the same unified driver set — the union
of what both variants previously supported:
-
LAN8814/LAN8804/LAN8818/LAN8808 (QSGMII, 4x10/100/1000BASE-T) — previously in
LAN969xonly, now also inLAN969x_AUTO. -
LAN887x (LAN8870, LAN8870B, LAN8871, LAN8872 — RGMII/SGMII 100/1000BASE-T1) and LAN867x (LAN8671, LAN8670 — 10BASE-T1S) — previously in
LAN969x_AUTOonly, now also inLAN969x.
In addition, support for the VSC8504 and VSC8574 quad-port 10/100/1000BASE-T PHYs has been added to both LAN969x variants. Only Rev-E silicon is supported. The PHY-timestamping feature of the VSC8574 is not supported.
See Software Variants for the full updated PHY support table.
1.3. New tailoring/board configuration features
1.3.1. Board configuration: PHY device ID verification
Two new board configuration fields have been added to the eth_port/phy
container:
-
phy_driver_id— the expected PHY device identifier. If set, the system verifies that the PHY responds with this ID at startup and logs an error if the IDs do not match. -
phy_readback— a list of register read-back checks applied to the PHY after initialisation.
See Board Configuration for details.
1.3.2. Board configuration: multiple status LEDs
The board configuration now supports a status_leds container, holding a
status_led list, alongside the
previous single-LED container. Up to four instances can be configured, each
with its own instance_id, gpio_state_at_init and
gpio_state_at_boot_complete. The older
single-LED container continues to be honoured but cannot be combined with the
new list.
See Board Configuration for details and drive-state examples.
1.3.3. Board configuration: PHY media interface selection
A media_interface leaf has been added to the eth_port/phy container.
It selects the physical media interface between the MAC and the PHY: Cu,
SGMII, or 1000BASE-X. If absent the default is Cu.
See Board Configuration for details.
1.3.4. Board configuration: PHY tunables
A tunables list has been added to the eth_port/phy container in the board
configuration. It allows named PHY parameters to be set at startup without
modifying the PHY driver. The supported tunable types are documented in the
board configuration guide.
See Board Configuration for details.
1.3.5. Tailoring: flash and bootloader flash configuration
Two new tailoring sections cover flash speed configuration:
-
The
board:drivers/flash_staticcontainer selects the flash access mode and sets a maximum SPI clock rate. The achieved clock may be lower than the requested bound, clamped to what the divider can express. -
The
LAN969X_FW_CONFIG_DTSdevice-tree knobs let the BL2 bootloader’s flash rate be set independently of the application’s rate — both have to be lowered to de-risk a marginal board.
See Board Configuration and Tailoring for details.
1.4. New support features
1.4.1. YANG SID files published in RFC 9595 format
YANG SID files are now generated and shipped in RFC 9595 format alongside the existing legacy-format files.
-
New location:
docs/sw_refs/yang/new-sid-files/<module>@<revision>.sid— RFC 9595 format, using theietf-sid-file:sid-filenamespace,item(notitems) andassignment-range(notassignment-ranges). -
Legacy location:
docs/sw_refs/yang/<module>@<revision>.sid— retained unchanged for backward compatibility.
Both the YANG catalog tar (attached to the documentation) and the
velocitydrivesp-client-lib packet include the new-sid-files directory.
1.4.2. SBOM published SPDX
The Software Bill of Materials is now published as a self-contained browsable HTML file alongside the SPDX JSON. Both the binary packet SBOM and the client-library SBOM are attached to the documentation and linked from the SBOM page.
The JSON SPDX files are also embedded in the distributed tar files.
1.4.3. Client library: new example tools
Two new C example programs are included in the client-library packet:
-
mup1ct— a C port of the MUP1 configuration tool, demonstrating CORECONF get and set over MUP1. -
dbgreg— a MIIM / switch register access tool that demonstrates raw register reads and writes via the client library.
See client-lib/README.md in the source tree for build and usage details.
1.5. Behavioral changes
1.5.1. CORECONF: two-pass validation for PUT/iPATCH
PUT and iPATCH requests on the <running> datastore (/c) are now
validated in two passes before any change is applied. The first pass checks the
entire request against the YANG schema; if it finds a violation (for example, a
value outside its permitted range) the request is rejected with an error before
the configuration is touched. This makes it less likely that the rollback
mechanism is needed, and means that a malformed request is always visible as a
clean error rather than a partially applied update.
1.6. Bugfixes
1.6.1. Bugfix: LAN969x: Secure boot ROT key leading-zero guard
An ECDSA public key coordinate with a leading zero byte could previously be silently accepted as a Root-of-Trust key, producing a key shorter than the expected 32 bytes and causing signature verification to fail at boot. The provisioning tooling now rejects any ROT key whose X or Y coordinate has a leading zero, so the problem is caught before the key is written to OTP.