Skip to content

OSNMAlib Configuration Options

Aleix edited this page Oct 29, 2024 · 2 revisions

Concept

OSNMAlib has several configuration parameters that can be defined previous to execution. The parameters are defined in a dictionary and sent to the receiver when creating the receiver object. Note that you can create a script to read the parameters from a JSON and send it to the receiver. The receiver will load default values for the configuration parameters not specified.

Parameters

  • exec_path [mandatory]: Path to the folder where OSNMAlib will search for the Merkle Tree root, Public Key and KROOT. OSNMAlib will also store the received cryptographic material and logs (if no log path is specified).
  • merkle_name [default='OSNMA_MerkleTree.xml']: Name of the Merkle Tree root file. Shall be in the GSA XML format.
  • pubkey_name [default='']: Name of the stored Public Key file. If nothing is specified, OSNMAlib will assume Cold Start. Shall be in the GSA XML format.
  • kroot_name [default='']: Name of the stored KROOT file. Shall have one line with the DSM KROOT complete message in hexadecimal and another line with the NMA Header in hexadecimal.
  • log_console [default=True]: Boolean value indicating if OSNMAlib should log to console.
  • console_log_level [default='debug']: Log level for the console logs. Possible values are: debug, info, warning, error, and critical.
  • log_file [default=True]: Boolean value indicating if OSNMAlib should log to a file.
  • file_log_level [default='info']: Log level for the file logs. Possible values are: debug, info, warning, error, and critical.
  • logs_path [default='']: Path to the folder where the logs will be saved. If nothing is specified, the same folder as exec_path is used.
  • tag_length [default=40]: Number of bits from verified tags to accumulate to consider the correspondent navigation data authenticated. The default of 40 bits is equivalent to 1 tag with the current OSNMA configuration.
  • active_adkd [default=[0, 4, 12]]: ADKD types that OSNMAlib should try to verify.
  • TL [default=30]: Loose time synchronization requirement for a secure OSNMA protocol initialization. Default to 30 seconds (the maximum to authenticate all ADKD types). Set it to what your receiver can guarantee.
  • do_mack_partial_extraction [default=True]: Extract tags and TESLA keys from partially received sub-frames.
  • do_tesla_key_regen [default=True]: Regenerate sub-frame's TESLA Key from partially received segments from different satellites.
  • do_cop_link_optimization [default=False]: Use the COP and the IOD fields to link navigation data and tags. Require a reduced TL for maximum performance. More information in the "Improving Galileo OSNMA Time To First Authenticated Fix" paper.
  • do_dual_frequency [default=False]: Extract navigation data from E1-B and E5b-I if the input source module supports it.
  • stop_at_faf [default=False]: Stop executing when obtaining an authenticated fix. Returns the Time To First Authenticated Fix value.

OSNMAlib Start Sequence

Based on the cryptographic material provided to OSNMAlib in the configuration dictionary, it will be set in one of the 3 start states defined in the ICD.

  • Cold Start: OSNMAlib has no Public Key saved, it needs to be retrieved from the OSNMA message.
  • Warm Start: OSNMAlib has a Public Key saved and verified, but it is missing the Tesla KROOT. It needs to be retrieved from the OSNMA message.
  • Hot Start: OSNMAlib has a Public Key and a Tesla KROOT saved and verified, but it needs to be sure the KROOT is still useful.

receiver_start_chart_updated

Clone this wiki locally