skip to main content

← Table of Contents

CHAPTER 4. SOFTWARE CONFIGURATION

This chapter provides details on the software configurations required to set up different components in CAVe-in-a-box for operation. Due to the technical nature of this chapter, the readers are assumed to be familiar with networking and terminal shell in a Linux environment.

V2X HUB INSTALLATION AND INITIALIZATION

V2X Hub

V2X Hub is available as a Docker image that may be run in a containerized environment (FHWA, 2020). The primary requirement for running V2X Hub is a local computer that can support Docker. Having root access to the device is preferred. For the development of this documentation, a Nano-pi M4 board installed with a variant of Ubuntu 18.04 (Canonical, 2020) was used.

The container is configured to use the host network for communications, so being able to control the IP address for the interface connected to the CAVe-in-a-box network on the computer running V2X Hub is required for a successful implementation. It is recommended to configure the computer to use 192.168.0.3 as the static IP address to be able to mimic the configurations stated within this document.

The initialization scripts for AMD or ARM 64-bit architecture processors are available through the V2X Hub GitHub repository. Once the V2X Hub source code has been downloaded, navigate to V2X-Hub/configuration/amd64 or V2X-Hub/configuration/arm64 depending on the system and run the following commands:

$ chmod +x initialization.sh

$ sudo ./initialization.sh

This script will execute the following:

  1. Ask you to set up a custom username and password to access the V2X Hub GUI. The password must be within the required constraints.
  2. Remove any older unsupported versions of Docker.
  3. Run a system update and upgrade.
  4. Install the latest versions of Docker along with all the prerequisites.
  5. Install python3-pip and subsequently install docker-compose through pip3.
  6. Execute the docker-compose.yml file to download and run V2X Hub through the following three images available from Docker Hub:
    1. Database (mysql)-mysql:5.7.
    2. Web server (apache-php)-php:7.2.2-apache.
    3. V2X Hub-usdotfhwaops/v2xhubamd:latest.

Upon successful execution of the initialization script, V2X Hub will be accessible using the local static IP address configured for the V2X Hub computer. Using an internet browser on the computer running V2X Hub or any other computer on the same network, navigate to https://192.168.0.3:19760. A webpage asking you to “add an exception to the security certificate requirements” will open up in the browser. This is to add the self-signed certificate generated by the V2X Hub container to your browser. You will be prompted to accept a security warning. Click to continue. This is a necessary security feature to ensure controlled and secure access to the system in a real-world deployment.

Following successful addition of the certificate, open a new browser tab and navigate to https://192.168.0.3. This will open up the landing screen for V2X Hub. There will be an IP address field at the top left. Re-enter 192.168.0.3 in this space and click the Enter key on the keyboard. This will bring up the login screen. Use the username and password created at the beginning of the initialization script to gain access to the V2X Hub configuration page.

This document will address basic configuration for the V2X Hub applications. For further reading, please visit the V2X Hub GitHub repository.

Plugin Configuration

For successful CAVe-in-a-box implementation, please configure the plugins with the following values.

Immediate Forward Plugin

The RSU will be configured to the IP address shown in Table 2. The port number provided in this document is for a Cohda RSU; please refer to the manufacturer’ any other RSU. The Provider Service Identifier (PSID) configuration is necessary to enable complete utilization of CAVe-in-a-box features. User configuration for the plugin occurs through an inbuilt manifest file in JSON. Table 2 shows a sample manifest file for the Immediate Forward plugin.

Table 2. Sample manifest file for the Immediate Forward plugin.
Key Default Value Description
Messages_Destination_1 { “Messages”: [ { “TmxType”: “SPAT-P”, “SendType”: “SPAT”, “PSID”: “0x8002” }, { “TmxType”: “MAP-P”, “SendType”: “MAP”, “PSID”: “0x8002” }, { “TmxType”: “PSM”, “SendType”: “PSM”, “PSID”: “0x8002” }, { “TmxType”: “TIM”, “SendType”: “TIM”, “PSID”: “0x8003” } ] } JSON data defining the message types and PSIDs for messages forwarded to the DSRC radio at destination 1.
Messages_Destination_2 { “Messages”: [ ] } JSON data defining the message types and PSIDs for messages forwarded to the DSRC radio at destination 2.
Messages_Destination_3 { “Messages”: [ ] } JSON data defining the message types and PSIDs for messages forwarded to the DSRC radio at destination 3.
Messages_Destination_4 { “Messages”: [ ] } JSON data defining the message types and PSIDs for messages forwarded to the DSRC radio at destination 4.
Destination_1 192.168.0.4:1516 The destination UDP server(s) and port number(s) on the DSRC radio for all messages specified by Messages_Destination_1.
Destination_2 0 The destination UDP server(s) and port number(s) on the DSRC radio for all messages specified by Messages_Destination_2.
Destination_3 0 The destination UDP server(s) and port number(s) on the DSRC radio for all messages specified by Messages_Destination_3.
Destination_4 0 The destination UDP server(s) and port number(s) on the DSRC radio for all messages specified by Messages_Destination_4.
Signature FALSE True or False value indicating whether the RSU should sign the messages being transmitted.

MAP Plugin

After the MAP file (ex. map_file.txt) is copied to the MAP folder created in the V2X-Hub/configuration/amd64 or V2X-Hub/configuration/arm64 folder on the V2X Hub computer, replace map_file.txt in the following configuration with the name of the MAP file. Table 3 shows a sample manifest file for the MAP plugin.

Table 3. Sample manifest file for the MAP plugin.
Key Default Value Description
Frequency 1000 The frequency to send the MAP message in milliseconds.
MAP_Files {“MapFiles”:[{“Action”:0, “FilePath”:“/var/www/plugins/MAP/map_file.txt”}]} JSON data defining a list of map files. One map file for each action set specified by the TSC.

SPaT Plugin

The Signal Group to Phase mapping is configured by matching the correct Signal Groups in the MAP file to the right phases configured in the TSC. Change the intersection ID and intersection name to match with the MAP file as per constraints set by the transportation authority. The document assumes that the TSC SNMP port number is 501. Table 4 shows a sample manifest file for the SPaT plugin.

Table 4. Sample manifest file for the SPaT plugin.
Key Default Value Description
Intersection_Id 1 The intersection ID for SPAT generated by this plugin.
Intersection_Name Intersection The intersection name for SPAT generated by this plugin.
SignalGroupMapping {“SignalGroups”:[
{“SignalGroupId”:1, “Phase”:1, “Type”:“vehicle”},
{“SignalGroupId”:2, “Phase”:2, “Type”:“vehicle”},
{“SignalGroupId”:3, “Phase”:3, “Type”:“vehicle”},
{“SignalGroupId”:4, “Phase”:4, “Type”:“vehicle”},
{“SignalGroupId”:5, “Phase”:5, “Type”:“vehicle”},
{“SignalGroupId”:6, “Phase”:6, “Type”:“vehicle”},
{“SignalGroupId”:7, “Phase”:7, “Type”:“vehicle”},
{“SignalGroupId”:8, “Phase”:8, “Type”:“vehicle”},
{“SignalGroupId”:22, “Phase”:2, “Type”:“pedestrian”}]}
JSON data defining a list of active SignalGroups and phases.
Local_IP 192.168.0.3 The IPv4 address of the local computer for receiving TSC Broadcast Messages.
Local_UDP_Port 6053 The local UDP port for reception of TSC Broadcast Messages 
TSC_IP 192.168.0.5 The IPv4 address of the destination TSC.
TSC_Remote_SNMP_Port 501 The destination port on the TSC for SNMP NTCIP 1202 v2 communication.

Message Receiver Plugin

The Message Receiver plugin only requires pointing to the IP address of the V2X Hub computer. The port number needs to be configured to 26789 to ensure successful functionality. Table 5 shows a sample manifest file for the Message Receiver plugin.

Table 5. Sample manifest file for the Message Receiver plugin.
Key Default Value Description
IP 192.168.0.3 IP address for the incoming message network connection.
Port 26789 Port for the incoming message network connection.
RouteDSRC FALSE Set the flag to route a received J2735 message over DSRC.
EnableSimulatedBSM FALSE Accept and route incoming BSMs from a V2XHub simulator.
EnableSimulatedSRM FALSE Accept and route incoming SRMs from a V2X Hub simulator.
EnableSimulatedLocation FALSE Accept and route incoming GPS location messages from a V2X Hub simulator.

Pedestrian Plugin

The port number for the WebServicePort may be changed if the specific port mentioned in the following configuration is being used by a different application. Table 6 shows a sample manifest file for the Pedestrian plugin.

Table 6. Sample manifest file for the Pedestrian plugin.
Key Default Value Description
Frequency 1000 The frequency to send the PSM in milliseconds.
Instance 0 The instance of the Pedestrian plugin.
WebServiceIP 192.168.0.3 The IP address associated with interface where the webservice is listening for requests. This should be set up such that anyone can send valid requests to the webservice; hence, it should be the outside-facing IP address on the V2X Hub machine.
WebServicePort 9000 The port to which webservice is bound. The incoming requests must be associated with this port; otherwise, they won’t be serviced.

Preemption Plugin

After the geofence file (ex. geofence.json) is copied to the MAP folder created in the V2X-Hub/configuration/amd64 or V2X-Hub/configuration/arm64 folder on the V2X Hub computer, replace geofence.json in the following configuration with the name of the geofence file. The preemption call is requested in an Econolite Cobalt ATC TSC using SNMP to configure the value for the corresponding Object Identifier in the MIB database defined by the NTCIP 1202 v3 protocol. Please refer to the manufacturer’s instructions to configure the correct object identifier (OID) for other TSCs following the NTCIP 1202v3 protocol. Table 7 shows a sample manifest file for the Preemption plugin.

Table 7. Sample manifest file for the Preemption plugin.
Key Default Value Description
BasePreemptionOid .1.3.6.1.4.1.1206.4.2.1.6.3.1.2. The BasePreemptionOid of Preemption Plugin
Instance 0 The instance of the Preemption Plugin
ipwithport 192.168.0.5:6053 The IP address with port number where the TSC is listening on for any request coming from Preemption Plugin
map_path ./geofence.json Location of the map file that contains geo location for geo fence
snmp_community public Snmp_community for Preemption Plugin

TIM Plugin

The broadcast time for the TIM plugin may be configured manually or through the webservice. For manual configuration, after the TIM file (e.g., tim_file.xml) has been copied to the MAP folder created in the V2X-Hub/configuration/amd64 or V2X-Hub/configuration/arm64 folder on the V2X Hub computer, replace tim_file.xml in the following configuration with the name of the TIM file.

The same information may also be sent to V2X Hub with the information with the broadcast date. This XML input will override any manually inserted information. The port number for the WebServicePort change if the specific port mentioned in the following configuration is being used by a different application. Table 8 shows a sample manifest file for the TIM plugin.

Table 8. Sample manifest file for the TIM plugin.
Key Default Value Description
Frequency 1000 The frequency to send the TIM in milliseconds.
MapFile “tim_file.xml” Location of a pre-existing TIM file (xml).
Start_Broadcast_Date 1/1/2019 The Start Broadcast Date for the TIM in the MM-DD-YYYY format.
Stop_Broadcast_Date 12/31/2020 The Stop Broadcast Date for the TIM in the MM-DD-YYYY format.
Start_Broadcast_Time 6:00:00 The Start Broadcast Time for the TIM in the HH:MM:SS format.
Stop_Broadcast_Time 21:00:00 The Start Broadcast Time for the TIM in the HH:MM:SS format.
WebServiceIP 192.168.0.3 IP address at which the webservice exists.
WebServicePort 9999 Port at which the webservice exists.

RSU CONFIGURATION

This section details the configuration for a Cohda RSU. Please refer to manufacturer instructions to perform similar configurations for other RSUs.

IP Address Setup

The default IP address for the Cohda RSU may be determined by converting the last four digits of the device serial number. The first two octets for the IP address by default are 169.254. The third octet may be obtained by converting the first two of the last four digits of the serial number from hexadecimal to decimal. The fourth octet may be obtained by converting the last two digits of the serial number from hexadecimal to decimal.

For example, suppose that the last four digits of the serial number for a Cohda RSU are 3728. The decimal value for “37” is “55” and the decimal value for “28” is “40.” The IP address to access this particular Cohda device would then be 169.254.55.40.

The RSU may be accessed using a SSH client like putty, or a terminal application that allows SSH connections. On the SSH client, use the IP address identified for the RSU along with the port number 22, which is the standard SSH port. Please refer to the user manual for initial login credentials. If using a terminal application, the syntax will be:

$ ssh username@169.254.55.40

Password: “password”

RSU Configuration for CAVe-in-a-box

Once the password has been entered and access has been granted, the next step is be to create a custom username and password. Certain steps need to be executed to ensure successful configuration of the RSU within CAVe-in-a-box. Please refer to manufacturer instructions for any specific actions that need to be performed during the configuration.

Configuring the Static IP Address

Please refer to the manufacturer’s instructions to change the IP address of the RSU to the following values:

$ fw_setenv static_ip_addr “192.168.0.4”

$ fw_setenv static_ip_mask “255.255.255.0”

$ fw_setenv static_ip_bcast “192.168.0.255”

$ fw_setenv static_ip_gw “192.168.0.1”

$ fw_setenv static_ip_ns “8.8.8.8”

Creating an SNMP User (Generally After Halting RSU Functioning)

Change “Admin,” which is the username, and “password” in the following command to the desired values:

$ net-snmp-config --create-snmpv3-user -A password -X password -a SHA -x AES Admin

BSM Forwarding Rules

Replace /this/location/should/be/mib-directory with the location of the MIB directory on the RSU. Also, change “Admin,” which is the username, and “password” in the following commands to the values created in the previous command:

$ snmpset -v3 -lauthPriv -uAdmin -Apassword -Xpassword -aSHA -xAES -mRSU-MIB -M/this/location/should/be/mib-directory -O T 127.0.0.1 iso.0.15628.4.1.99.0 i 2

$ snmpset -v3 -lauthPriv -uAdmin -Apassword -Xpassword -aSHA -xAES -mRSU-MIB -M/this/location/should/be/mib-directory -O T 127.0.0.1 \

iso.0.15628.4.1.7.1.11.1 i 4 \

iso.0.15628.4.1.7.1.2.1 x 0x20 \

iso.0.15628.4.1.7.1.3.1 x 0x000000000000000000000000c0a80003 \

iso.0.15628.4.1.7.1.4.1 i 26789 \

iso.0.15628.4.1.7.1.5.1 i 2 \

iso.0.15628.4.1.7.1.10.1 i 1

$ snmpset -v3 -lauthPriv -uAdmin -Apassword -Xpassword -aSHA -xAES -mRSU-MIB -M/this/location/should/be/mib-directory -O T 127.0.0.1 \

iso.0.15628.4.1.7.1.11.2 i 4 \

iso.0.15628.4.1.7.1.2.2 x 0xBFEE \

iso.0.15628.4.1.7.1.3.2 x 0x000000000000000000000000c0a80003 \

iso.0.15628.4.1.7.1.4.2 i 26789 \

iso.0.15628.4.1.7.1.5.2 i 2 \

iso.0.15628.4.1.7.1.10.2 i 1 \

iso.0.15628.4.1.99.0 i 4

TRAFFIC SIGNAL CONFIGURATION

Most TSCs provide manual configuration using keys available on the device. Please refer to the TSC manufacturer’s instructions for more details:

IP Address Configuration

Configure the TSC to the following IP address:

IP Address: 192.168.0.5

Subnet Mask: 255.255.255.0

Default Gateway: 192.168.0.1

DNS Server: 8.8.8.8

SPaT Forwarding IP Address

This IP address may sometimes be termed as “Ping Server” or “SPaT Server.”

IP Address: 192.168.0.3

Enabling SPaT Forward

Certain TSCs may require an extra step to enable forwarding of SPaT objects to the application. In this case, the user will enable the forwarding of the SPaT objects to the computer running V2X Hub. Any external SNMP application may be used to pass the following command to the TSC to start forwarding SPaT objects. Please refer to the manufacturer’s instructions for the correct OID.

$ snmpset -v3 -c public 192.168.0.5:501 1.3.6.1.4.1.1206.3.5.2.9.44.1.0 i 2

WI-FI ROUTER CONFIGURATION

A Wi-Fi router may be used for access and configuration to CAVe–in–a–box. The router must be configured with the IP address of 192.168.0.1 and client list using the same subnet. It is preferable to enable DHCP for the wireless interface and static IP configuration for the Ethernet interface. A 4G LTE modem may be used to provide internet access to CAVe-in-a-box for remote configuration.

Previous | Next

Stay Connected

twitter logo
facebook logo
linkedin logo
youtube logo
U.S. DOT instagram logo

For inquiries regarding the ITS PCB Program, please contact the USDOT Point of Contact below.
J.D. Schneeberger
Program Manager, Knowledge and Technology Transfer
John.Schneeberger@dot.gov

U.S. Department of Transportation (USDOT) | 1200 New Jersey Avenue, SE | Washington, DC 20590 | 800.853.1351
U.S. DOT | USA.gov | Privacy Policy | FOIA | Budget and Performance | No Fear Act
Cummings Act Notices | Ethics | Web Policies & Notices | Vulnerability Disclosure Policy | Accessibility