Skip to content

Receive ISD via UDP and deposit to SDC

Tony Chen edited this page Jun 2, 2017 · 1 revision

Goal

This tests the full end-to-end functionality of the ISD SDC depositor feature. An UPER encoded ISD message will be sent over UDP from a Blackbox to an instance running the ODE over IPv6. The ODE will then automatically forward and deposit this message to the SDC.

ISD Dialog (production)

  • OBU -----ServiceRequest-----> ODE -----ServiceRequest----> SDC
  • OBU <----ServiceResponse----- ODE <----ServiceResponse---- SDC
  • OBU --------IsdMessage------> ODE --------IsdMessage-----> SDC
  1. OBU sends ServiceRequest to ODE, which forwards it to the SDC.
  2. ODE receives ServiceResponse from SDC, and forwards it back to the OBU.
  3. OBU sends ISD to ODE, which forwards it to the SDC.

Approach 1 (Using Mocked-up Blackbox):

This approach uses a mocked-up Blackbox which sends ISD dialog to ODE which then forwards the dialog to SDC.

  1. Open the Warehouse Tools on Samanage.
  2. Navigate to webapp2.connectedvcs.com and go to the Warehouse Tools Set.
  3. Click the SDC Subscription tool at the top.
  4. Set the parameters as shown in image 1 below making sure the NW Corner and the SE Corner defines a region which contains the position for the corresponding test VSD message. The one in the image defines Wyoming region.
  5. Click the Connect button and after connecting, click the Submit Subscription button to subscribe to SDC.
  6. Using an IDE/text editor, open the application.properties file located in the jpo-ode-svcs/src/main/resources/ directory.
  7. Update the fields returnIp and returnPort to where you want to receive the ServiceReponse from SDC. Use IPv4 for returnIp. Update the value for the field isdmSenderPort to what you are using for returnPort. Make sure that the firewall rules allow communication through the UDP ports on that ip.
  8. Deploy latest ODE in an IPv6 supported instance (Rackspace) and create a separate IPv6 test instance(Rackspace) to emulate an OBU.
  9. Open http://:8080/ in a browser and click Connect button to subscribe to isd kafka topic.
  10. On the OBU emulator instance, obtain the ObuEmulator folder from: https://github.com/usdot-jpo-ode/jpo-ode/tree/ode-308/data/ISDM_Testing/ObuEmulator
  11. From within the ObuEmulator folder, run the following commands:
    a) Command to compile the java file.
    javac -classpath .:commons-codec-1.10.jar IsdDepositorToOde.java
    b) Command to run the app that sends ISD dialog to ODE.
    java -classpath .:commons-codec-1.10.jar IsdDepositorToOde
  12. Verify the ODE received the message by checking ode.log as shown in Image_1. In the log there should be confirmation of UDP reception as well as a list of JSON BSMs extracted/converted from the ISDM.
  13. Check the SDC web tools page and verify ISD was deposited as shown in Image_2.
  14. Check the http://:8080/ to verify that the BSMs have been received as shown in Image_3.

Approach 2 (Using Real Blackbox):

This approach uses a real Blackbox which first establishes trust with ODE and once the trust is established, the Blackbox sends multiple ISDs to ODE which then forwards them to SDC for deposit.

  1. Same as step 1-6 in Approach 1 above.
  2. Get the latest code for ODE in an IPv6 supported environment.
  3. Remove the ode portion from docker-compose.yml as ODE will need to be run as a jar file. Running ode inside the docker container caused some issues with retrieving IPV6 address from the packets sent by the Blackbox.
  4. Run docker-compose stop && docker-compose rm -f -v && docker-compose up --build -d && docker-compose ps to run Kafka and ZooKeeper inside docker containers.
  5. Run mvn -DskipTests=true clean package && java -jar jpo-ode-svcs/target/jpo-ode-svcs-0.0.1-SNAPSHOT.jar to run ODE from a jar file.
  6. Open http://:8080/ in a browser and click Connect button to subscribe to bsm kafka topic.
  7. Start sending VSD dialog from the Blackbox to ODE on corresponding IPV6 and port 46753.
  8. Verify the ODE received the message by checking ode.log as shown in Image_1. In the log there should be confirmation of UDP reception as well as a list of JSON BSMs extracted/converted from the VSDM.
  9. Check the SDC web tools page and verify VSD was deposited as shown in Image_2.
  10. Check the http://:8080/ to verify that the BSMs have been received as shown in Image_3.

Image 1: ODE Logs

Image 2: SDC Subscription Tool

Image 3: BSM Subscriber Web UI

Releases

Change Notices

Informational Reference

  • Decode a file with asn1c
  • Deposit BSM to S3
  • Docker fix for SSL issues due to corporate network
  • Docker management
  • ECDSA Primer
  • Filter BSMs through PPM module
  • Geofence Filtering for PPM
  • Import BSMs from RSU log file
  • Import TIMs from RSU log file
  • jpo security svcs Integration
  • Link host directory to Docker directory
  • Migrating from SDW websocket depositor to SDW Depositor Submodule
  • ODE Release Deployment
  • ODE Release Preparation
  • Prepare a fresh Ubuntu instance for ODE installation
  • Process for Handling Bugs (Code Defects)
  • Run the ODE using the ASN codec module
  • Query RSU for set TIMs
  • Schema Version 6 Change Notice
  • Signed Message File Import
  • TIM REST Endpoint Changes
  • Using the .env configuration file
  • Using the ODE test harness

Test Procedures

  • Delete TIM on RSU test
  • Event Logger Test
  • Import Decode and Deliver BSM Test
  • Manage SNMP Test
  • Sending PDM to RSU Test
  • Sending TIM to RSU Test
  • Submit_TIM_To_SDW Test

Archived

  • Log File Changes (schemaVersion=4)
  • Receive BSMs over UDP
  • Receive ISD via UDP and deposit to SDC
  • Receive VSD via UDP and deposit to SDC
  • Run the crypto test vectors code with ODE team's OSS encoder
  • SchemaVersion 5 Change Notice
Clone this wiki locally