Releases: GENIVI/rvi_core
Version 0.5.1
Release Notes
This is a maintenance release.
-
Updated certificates
The sample certificates in Version
0.5.0
have expired. New versions ofinsecure_device_cert.crt
andinsecure_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 thejsx
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 both0.5.0
and0.5.1
)
Version 0.5.0
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:
- 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. - 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. - 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.
- Root Certificate (X.509)
-
Debian and Ubuntu Packaging
Debian and Ubuntu packages can directly be built natively using the makefile targets
debian_package
andubuntu_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:
- INSTALL_debian.md - Installation instructions for Debian systems
- INSTALL_raspbian.md - Installation instructions for Raspbian systems
- INSTALL_ubuntu.md - Installation instructions for Ubuntu systems
-
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
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 levelpython
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