Skip to content

v1.0.0

Choose a tag to compare

@dgnemo dgnemo released this 26 Feb 20:57
· 185 commits to main since this release

New 1.0.0 version is available in the v1 directory.

The previous v0 version is maintained in the repository to facilitate the upgrade to v1
v0 has been marked as deprecated and will eventually be removed.

ℹ️ This release officially promotes v1alpha from a pre-release to stable release, meaning:

  • Breaking changes are not possible under the same major version number (Semantic Versioning)
  • API additions are possible, but only if they don't require breaking changes
  • The version is ready to be integrated and used in production systems

Breaking changes since v0.0.7-reorganized

  • Protobuf package name changed to nmts.v1
  • Changed all uint32 and uint64 types to int32 and int64, to adopt AIP-141.
  • Field nmts.v1.Entity.id is now enforced to use "UTF-8 strings in Unicode Normalization Form C"
  • Regarding nmts.ek.v1.physical.Modulator
    • the code has been moved from ek/physical/modulation.proto to ek/physical/modem.proto
    • field adaptive_coding_and_modulation_to_channels has been removed
    • field adaptive_coding_and_modulation_for_channel_bandwidths has been added with a different structure:
      • Previously, the AdaptiveCodingAndModulation message stored a list of ModcodToDataRates, where each ModcodToDataRate stored a oneof of thresholds of received signal quality. This structure allowed the definition of thresholds through multiple metrics within the same AdaptiveCodingAndModulation message (i.e. as both power at receiver output and C/(N+I)), and this should not be allowed.
      • Now, the AdaptiveCodingAndModulationForChannelBandwidth message stores a oneof of lists of thresholds of received signal quality, so all elements must use the same metric. 
      • Previously, AdaptiveCodingAndModulationToChannels defined an adaptive_coding_and_modulation and all of the channels to which this ACM configuration applied. All channels had to be of the same bandwidth because the data rates in the AdaptiveCodingAndModulation message depend on the channel bandwidth, but this was not clear from the structure of the proto.
      • Now, this message has been renamed to AdaptiveCodingAndModulationForChannelBandwidth, and it stores a single field for the channel bandwidth and a separate list of center frequencies.
    • Removed min_received_signal_power_dbw as an option for defining MODCOD thresholds. Carrier to noise-plus-interference should be used instead.
  • Regarding nmts.ek.v1.physical.Demodulator
    • the code has been moved from ek/physical/modulation.proto to ek/physical/modem.proto
    • field adaptive_coding_and_modulation_to_channels has been removed
    • field adaptive_coding_and_modulation_for_channel_bandwidths has been added with a different structure (see Modulator)
  • Regarding nmts.v0.ek.service.Uni
    • has been renamed nmts.v1.ek.logical.Uni (logical instead of service)
  • In nmts.v1.ek.logical.LogicalPacketLink
    • field properties has been removed
    • field max_data_rate_bps has been added (before was nested inside properties)
  • In nmts.v1.ek.logical.MplsAttributes
    • field enabled has been removed
  • In nmts.v1.types.geophys.CcsdsOrbitEphemerisMessage
    • field file has been renamed to file_contents
  • In nmts.v1.types.iana.IpProto
    • field ipp has been renamed to well_known

Additions since v0.0.7-reorganized

  • In nmts.v1.ek.logical.LogicalPacketLink
    • field max_sid_depth has been added, inside the sr (SegmentRouting) field
    • field latency has been added
  • In nmts.v1.ek.logical.RouteFn
    • field max_sid_depth has been added, inside the sr (SegmentRouting) field
  • In nmts.v1.ek.logical.Interface
    • field max_data_rate_bps has been added
    • field admin_status has been added
  • In nmts.v1.ek.physical.PhysicalMediumLink
    • field max_data_rate_bps has been added
    • field latency has been added
  • In nmts.v1.ek.physical.Port
    • field max_data_rate_bps had been added
    • field admin_status has been added
  • In nmts.v1.ek.physical.LinearFilter
    • field frequency_hz has been added
    • field lower_bandwidth_limit_hz has been added
    • field upper_bandwidth_limit_hz has been added
    • field noise_temperature_k has been added
  • In nmts.v1.types.geophys.KeplerianElements
    • field central_body has been added (defaults to Earth if not provided)
  • New nmts.v1.types.geophys.StkAttitudeEphemerisFiles motion type for MotionDescription
  • New nmts.v1.ek.logical.BpAgentFn NMTS Entity to hold Bundle Protocol Agent (RFC 9171) state
  • New nmts.v1.types.ietf.IfAdminStatus enum type (used in admin_status fields)

Other Changes since v0.0.7-reorganized

  • Go SDK updated to 1.24.0
  • Protobuf dependency updated to v29.0-rc3
  • Googleapis dependency updated to 0.0.0-20240819-fe8ba054a
  • Gazelle dev-dependency updated to 0.40.0
  • docs/guidelines.md updated to mention alignment with Google's API Improvement Proposals.
  • New Go library //lib/graph library to support DFS traversal

Full Changelog: v0.0.7-reorganized...v1.0.0