Skip to content

Latest commit

 

History

History
339 lines (253 loc) · 11.7 KB

CHANGELOG.md

File metadata and controls

339 lines (253 loc) · 11.7 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Changed

  • Add the new method CheckContextValid(*Bundle) error to the ExtensionBlock interface in the bpv7 package to allow context aware Block checks against the whole Bundle.

Fixed

  • Allow Bundles to hold more than one Extension Block of the same Block Type Code, as specified in RFC 9171.
  • Reintroduce loopback device support for the peer discovery.

0.9.1 - 2022-05-20

Added

  • Connect Administrative Records with Bundle and BundleBuilder.
  • Make PingAgent configurable as a dtnd Agent.
  • Simple "dtn-tool ping" command to interact with a PingAgent.
  • Reassembly support for fragmented Bundles in the Store.

Changed

  • Structural refactoring:
    • Move all Go packages into the pkg directory.
    • Renamed bundle package to bpv7. This new name better describes that it is about bpbis and not just bundles. Furthermore, this allows to use the obvious variable name "bundle" for a bpv7.Bundle.
    • Unlink discovery from Core.
    • Move custom routing-extension block to the bpv7 package, where they shall reside with their brethren.
  • Bump draft-ietf-dtn-bpbis version from 26 to 31.
    • Restrict dtn URI node name to [\w-._]+, ietf-dtn-bpbis-27.
    • "Block unintelligible" status report is replaced by new "Block unsupported" status report code for non-processable blocks.
  • Bump draft-ietf-dtn-tcpclv4 version from 21 to 23.
  • Bump go-dependencies
  • Set Linux-specific socket options for a MTCP Client's connection to detect an abrupt connection loss.
  • Check for existence of ExtensionBlock before adding a new one.
  • Have Bundle and BundleDescriptor return the same type when calling ID-method.

Fixed

  • Include nil-check for EndpointID's internal representation.
  • Close a MTCP Client after sending a keepalive failed.
  • Enable parsing of primary blocks without a CRC value. When creating, an attempt is made to enforce a CRC, since this is necessary in the absence of an integrity block (BPSec).
  • Exclude the peer discovery Manager's function field from the JSONFormatter used by logrus. Otherwise, the struct cannot be encoded.
  • Set the default DTLSR edge-cost > 0

0.9.0 - 2020-10-08

Added

  • Specific routing algorithm for data mules in sensor networks.
  • Additional contrib files to used dtnd with systemd and ufw.
  • GitHub Action to perform multiple Go Race Detector tests at night.
  • Add WebSocket-based variant of TCPCLv4.

Changed

  • An invalid EndpointID struct is interpreted as dtn:none.
  • Compare EndpointIDs based on both scheme and authority part.
  • Allow any bundle.ExtensionBlock to implement a json.Marshaler for a more human readable output. This was done for the bpbis blocks.
  • bundle.ExtensionBlock has a "BlockTypeName" next to its type code for a human readable output.
  • Renamed cla/tcpcl package to cla/tcpclv4.
  • Renamed tcpcl to tcpclv4 in dtnd's configuration.
  • Bump draft-ietf-dtn-tcpclv4 version from 14 to 21.
  • API change on cla.Convergence and cla.ConvergenceSender.
  • Changed CLAType numbers to allow grouping similar Convergence Layers.

Fixed

  • Check if WebSocket Agent's channel is closed to mitigate dtn-tool from crashing.

0.8.0 - 2020-08-05

Added

  • REUSE compliance and a new copyright header generation script.
  • Sort Bundle's CanonicalBlocks on creation and block modification.
  • Custom SignatureBlock for cryptographic ed25519 Bundle signatures.
  • dtnd supports attaching a SignatureBlock for Administrative Records.

Changed

  • Replaced TravisCI with GitHub Actions.
  • List all Extension Block type codes in bundle/extension_block.go.
  • Fragmentation tries to copy the original CRC type.
  • BundleBuilder sets flags by default:
    • Request delivery status bundle control flag.
    • Replicate block control flag for Bundle Age Block, Hop Count Block, and Previous Node Block to ease Bundle fragmentation.

Removed

  • Drop compatibility with Go versions below 1.13.

Fixed

  • Ensure only Payload Blocks are allowed to get Block Number 1 when adding Extension Blocks to an empty Bundle.
  • PrimaryBlock: always overwrite CRC, don't rely on cached values
  • dtn-tool exchange: do not resend received Bundles

0.7.1 - 2020-08-03

Fixed

  • Restoring compatibility with Go 1.11.

Deprecated

  • Compatibility with Go 1.11 will soon be dropped. Expect the 0.7.x releases the last ones to support this now almost two year old Go version. Sorry.

0.7.0 - 2020-08-03

Added

  • AdministrativeRecordManager to allow more dynamic Administrative Records.
  • EndpointID gets a singleton property, ietf-dtn-bpbis-26.
  • Make repository more friendly for new contributors by
    • GitHub Issue template,
    • CHANGELOG.md file, and
    • Contributing section in README.md.

Changed

  • Enforce strict dtn URI scheme based on the ABNF, like this dtn://NODE-NAME/OPTIONAL-VARIOUS-CHARS.
  • Allow peer discovery to work with multiple Endpoint IDs.
  • CLA management is performed by the CLA Manager.
  • Time is normed to milliseconds, ietf-dtn-bpbis-26:
    • DTN Time: milliseconds instead of seconds
    • Primary Block's lifetime: milliseconds instead of microseconds
    • Bundle Age Block: milliseconds instead of microseconds
  • Bump draft-ietf-dtn-bpbis version from 24 to 26.

Fixed

  • BundleBuilder sorts CanonicalBlocks based on their block number.

0.6.1 - 2020-04-16

This release was created before adapting the Keep a Changelog format.

Normalize RestAgent's error response field

Previously, the error reporting in the JSON objects were differerent for different methods. This makes a programming library unnecessarily complicated.

Furthermore, the bundle/arecord package was moved into bundle. This was actually only supposed to happen in the next main release.

0.6.0 - 2020-04-16

This release was created before adapting the Keep a Changelog format.

New agent package for different clients in dtnd

Some changes have built up for this release. The biggest change is the new agent package, which replaces the old REST interface.

Further changes in headwords:

  • agent: MuxAgent to multiplex "child" agents
  • agent: PingAgent to respond to pings

0.5.4 - 2020-01-04

This release was created before adapting the Keep a Changelog format.

Different bug-fixes for bundle package and store

The memory footprint of the store has been reduced so it runs smoothly on smaller platforms. Additionally the deserialization of bundles was examined via fuzzing. As a result, two critical bugs were fixed.

0.5.3 - 2019-12-17

This release was created before adapting the Keep a Changelog format.

Optimize BBC for rf95modem

  • Recipients can report failed transmissions. This leads to cancellation with later retransmission.
  • xz compress Bundles
  • Fix other bugs..

0.5.2 - 2019-12-06

This release was created before adapting the Keep a Changelog format.

Bundle Fragmentation

The bundle package now supports Bundle fragmentation and reassembly regarding a given MTU.

0.5.1 - 2019-12-03

This release was created before adapting the Keep a Changelog format.

TCPCL bugfixes, wider ExtensionBlock serialization

This small release fixes several critical bugs in the TCP Convergence Layer that caused crashes when reconnecting. More work on this CLA is still neccessary.

Furthermore, the ExtensionBlock interface has been extended. Thus it is now possible to serialize the block-type specific data of a CanonicalBlock not only to CBOR, but to generic binary data. Instead of the cboring.CborMarshaler it is now possible to implement the encoding.Binary{Marshaler,Unmarshaler}. Based on the implemented interface, a serialization is chosen.

0.5.0 - 2019-11-08

This release was created before adapting the Keep a Changelog format.

LoRa-based CLA and update BP to dtn-bpbis-17

0.4.0 - 2019-10-11

This release was created before adapting the Keep a Changelog format.

TCPCL and PRoPHET

This release implements the Delay-Tolerant Networking TCP Convergence Layer Protocol Version 4 for a bidirectional Bundle exchange. Furthermore, the PRoPHET routing protocol was added.

0.3.0 - 2019-09-06

This release was created before adapting the Keep a Changelog format.

DTLSR, MTCP Keep Alive

The Delay Tolerant Link State Routing protocol was implemented. Furthermore, a TCP keep alive was added to MTCP against link failure.

0.2.1 - 2019-08-08

This release was created before adapting the Keep a Changelog format.

Update Bundle Protocol Version 7 to draft 14

The most significant change is the establishment of a mandatory CRC value for the Primary Block. Furthermore, the Manifest Block that was previously marked as reserved is now removed.

0.2.0 - 2019-08-02

This release was created before adapting the Keep a Changelog format.

New release

  • Cron Service
  • Manage Bundle IDs
  • New CLA/Convergence Management
  • New routing algorithms: Spray and Wait, Binary Spray and Wait
  • Redesigned Store for meta data and with lazy Bundle loading

0.1.1 - 2019-07-09

This release was created before adapting the Keep a Changelog format.

Refactored bundle package.

Mostly replacing codec library with new cboring library for CBOR serialization, resulting in a major speedup.

0.1.0 - 2019-06-06

This release was created before adapting the Keep a Changelog format.

The date of this release may be incorrect because the tag was added after switching to Semantic Versioning.

First, unstable release