Skip to content
This repository has been archived by the owner on Nov 2, 2021. It is now read-only.

Releases: GENIVI/rvi_core

Version 0.5.1

21 Dec 19:14
Compare
Choose a tag to compare

Release Notes

This is a maintenance release.

  • Updated certificates

    The sample certificates in Version 0.5.0 have expired. New versions of insecure_device_cert.crt and insecure_root_cert.crt have been created, as well as a corresponding sample credential file, insecure_credential.jwt.

  • A new JSON codec was introduced in 0.5.0, but adaptation was only partial, relying on a conversion layer. In this version, the remainder of the code has been rewritten for the jsx data representation.

  • caching authorization results for higher performance.

  • added support for TLS options (and turning of TLS session caching as default)

  • various bug fixes, particularly a subtle bug in the fragmentation support

  • some added tracing support

  • added "get_node_service_prefix" in the service edge API. The "get_node_service_prefix" method returns the service prefix of the RVI node. The option {"full": false} returns only the domain name, whereas {"full": true} returns the <domain>/<type>/<UUID> triple.

  • some improvements in the Websocket python client

  • the sample credential now uses "right_to_receive" instead of "right_to_register" (but both forms are supported in both 0.5.0 and 0.5.1)

Version 0.5.0

26 Feb 21:32
Compare
Choose a tag to compare

Release Notes

Version 0.5.0 marks a major milestone in the development of RVI:

  • Security Features

    The RVI protocol, that is, the protocol that two RVI nodes use to communicate with each other, has been enhanced with security features:

    1. Root Certificate (X.509)
      The root certificate is generated by a trusted provisioning server and pre-provisioned on all RVI nodes. It is self-signed by the issuing entity (however, signing through a signing authority is possible). The root certificate is used to sign all RVI device certificates and all credentials.
    2. Device Certificate (X.509)
      Each device requires a device certificate that is signed by the root certificate. The device certificate is used by TLS for initial authentication.
    3. Device Credentials (JWT)
      Device credentials describe the services that a particular device has the rights to invoke and to receive. Invocation rights allow the device to call services on other nodes. Reception rights allow the device to register services with a server for the services to be discovered by other devices and to receive service invocation requests from other devices. Device credentials are packaged in Java-Script Web Token (JWT) format. The device credentials embed the devices X.509 certificate as PEM-encoded string. Device credentials are signed by the root certificate.
  • Debian and Ubuntu Packaging

    Debian and Ubuntu packages can directly be built natively using the makefile targets debian_package and ubuntu_package.

  • Yocto Project Integration

    RVI can now also be cross-built with the Yocto Project. To do so you need to include the meta-rvi layer into your build environment. The layer depends on the meta-erlang layer, which you also need to include into your build environment. The RVI recipes provide SysVInit as well as systemd startup which are automatically selected based on the distribution settings. The image target rvi-image-base provides a simple command-line based image that includes Erlang and RVI. For instructions on Yocto Project builds refer to the documentation of the meta-rvi layer.

  • Raspbian Packaging

    The makefile can also natively build RVI packages on Raspbian using the raspbian_package targets. We recommend using Raspbian Jessie. Since the Raspbian repositories for Jessie do not contain packages for Erlang 18.2 you will need to compile Erlang 18.2 yourself on the target or you can use the package tarball provided.

  • Installation Instructions

    For instructions on how to install RVI on the various platforms refer to the documents in the top-level directory:

  • Binaries

    For your convenience we have provided binaries of the RVI packages for Debian, Raspbian and Ubuntu. We also provide a tarball with the Erlang packages for Raspbian:

    • erlang-18.2.tar.bz2 - tarball containing the Erlang packages
    • rvi_0.5.0-1ubuntu1_amd64.deb - package for Ubuntu Trusty on x86-64
    • rvi_0.5.0-1_amd64.deb - package for Debian Jessie on x86-64
    • rvi_0.5.0-1_armhf.deb - package for Raspbian Jessie

    The Erlang binaries are only for use on Raspbian. For all other platforms Erlang can be installed from package repositories.

Version 0.3.0

10 Mar 00:11
Compare
Choose a tag to compare
Version 0.3.0 Pre-release
Pre-release

RELEASE NOTES

  • Auto connect static links

    When data link is lost to a statically configured node (See
    CONFIGURE STATIC NODES in configuration document, a
    reconnect attempt will be made every five seconds.

  • Intra-component communication speedup

    Components inside an RVI node can now choose if they want to use
    JSON-RPC (compatbility mode) or Erlang Genserver calls to
    communicate.

  • List available services

    Added get_available_services, allowing a service to query its RVI node
    of which other services are on-line and available for invocation.

  • New python tutorial code
    Created top level python directory with rvilib.py and three
    new apps that can be used as tutorials on how to interface RVI. The
    apps are:

    rvi_service.py registers a service with an RVI node and prints
    out information when it is invoked by RVI.

    rvi_call.py invokes a service in an RVI network.

    rvi_get_services.py connects to a local RVI node and prints out
    a list of all callable services accessible throughout that node.

    rvilib.py has been cleaned up and simplified.

  • Service availability notifications

    Added real-time notifications from an RVI to its locally connected services
    when a new service is added or deleted somewhere in the network. This
    allows for the implementation of "vehicle online" indicators and other
    real-time sensitive behavior.

    real-time sensitive behavior.

  • Big data demo moved

    Big data demo moved to its own repo at https://github.com/PDXostc/rvi_bigdata

  • SOTA demo moved

    SOTA demo moved to its own repo at https://github.com/PDXostc/rvi_sota_demo