Metadati del bundle di servizi

Questa pagina spiega come utilizzare i campi dei metadati obbligatori e facoltativi del bundle di servizi.

Metadati obbligatori

Il modello di esecuzione del service bundle richiede che ogni service bundle definisca i seguenti metadati:

sdv_service_bundle_metadata {
  # Name of the service bundle.
  #
  # Must follow SDV service naming convention rules.
  # Ref: https:/automotive/sdv/core-areas/naming-conventions
  #
  # When using VSIDL catalog and middleware generation, this name must be
  # equal to the service bundle name defined in the catalog.
  name: "TheNameOfTheServiceBundle"

  # Service Bundle Version Number.
  # Must be non-negative number.
  version_number: 1

  # Service Bundle Version Name.
  # Must be non-empty string.
  version_name: "1.0 alpha"

  # Path to the native library to be loaded as service bundle.
  # Must be the relative path from the APEX root directory
  native_library_path: "lib64/libservice_bundle.so"
}
# Service bundle one.
sdv_service_bundle_metadata {
  name: "ServiceBundleOne"
  ...
}
# Service bundle two.
sdv_service_bundle_metadata {
  name: "ServiceBundleTwo"
  ...
}

Metadati facoltativi

Il supporto dei metadati facoltativi consente di utilizzare funzionalità SDV specifiche.

Metadati di orchestrazione

La configurazione dell'orchestrazione SDV fornisce un meccanismo per controllare il comportamento di avvio e arresto dei bundle di servizi. La configurazione dell'orchestrazione SDV definisce un insieme di regole che determinano quando e come vengono eseguite le azioni sulle istanze dei bundle di servizi. Queste regole si basano su modalità personalizzate, di alimentazione e del veicolo.

Per associare una configurazione di orchestrazione al bundle di servizi, fornisci il percorso del modulo prebuilt_etc nel campo facoltativo orchestration_config_path:

sdv_service_bundle_metadata {
  ...
  # Path to the orchestration config file.
  # Warning: Shall be relative path to the APEX root directory.
  orchestration_config_path: "etc/configuration/orchestration/configuration.textproto"
}

Percorso della policy di autorizzazione

La policy di autorizzazione SDV fornisce un meccanismo per dichiarare le autorizzazioni per il bundle di servizi. Il criterio di autorizzazione definisce le azioni che il bundle di servizi può eseguire (ad esempio pubblicare, sottoscrivere, pubblicare o chiamare).

Per associare una policy di autorizzazione al bundle di servizi, fornisci il percorso del modulo prebuilt_etc nel campo facoltativo authorization_policy_path:

sdv_service_bundle_metadata {
  ...
  # Path to the authorization policy file.
  # Warning: Shall be relative path to the APEX root directory.
  authorization_policy_path: "etc/authz/permissions.textproto"
}

Metadati del fornitore VSIDL

I metadati del fornitore VSIDL fanno parte di un meccanismo per l'integrazione di bundle di servizi con agenti delle piattaforme Diagnostics e SOME/IP.

Per associare i metadati di un fornitore VSIDL a un bundle di servizi, fornisci il percorso dei file prebuilt_etc che contengono i file di metadati generati nel campo facoltativo vsidl_schemas_path / diagnostics_config_path/ (solo APEX di configurazione SOME/IP) external_service_bundle_metadata_path:

sdv_service_bundle_metadata {
  ...
  # Path to the file with protobuf schemas extracted from bundle's VSIDL definition.
  # Warning: Must be relative path to the APEX root directory.
  vsidl_schemas_path: "etc/vsidl_provider/TheNameOfTheServiceBundle-vsidl-config.binpb"

  # Path to the diagnostics config file.
  # Warning: Shall be relative path to the APEX root directory.
  diagnostics_config_path: "etc/vsidl_provider/TheNameOfTheServiceBundle-diag-config.binpb"

  # Path to the SOME/IP config file. To be used in SOME/IP configuration apex only.
  # Warning: Must be relative path to the APEX root directory.
  external_protocol_mapping_path: "etc/vsidl_provider/someip-config.binpb"
}

Per saperne di più, consulta la panoramica del provider VSIDL.

Metadati dei tag di log

L'attributo tag log specifica l'identificatore univoco per i log generati dal bundle di servizi. Se questo attributo non è definito, viene generato automaticamente un tag predefinito utilizzando il nome del pacchetto, il nome del bundle di servizi e il nome dell'istanza. Per una chiarezza ottimale, definisci un tag di log conciso e univoco.

Metadati personalizzati

I metadati personalizzati consentono a OEM e fornitori di definire alcuni metadati specifici del pacchetto di servizi

sdv_service_bundle_metadata {
  ...
  # Custom service bundle metadata map.
  # Key is a string, value is a string.
  #
  # 1st custom metadata value.
  custom_metadata {
    key: "question"
    value: "Answer to the Ultimate Question of Life, the Universe, and Everything"
  }
  # 2nd custom metadata value.
  custom_metadata {
    key: "answer" value: "42"
  }
}
sdv_service_bundle_metadata {
  ...
  # Custom metadata values are stored in etc/.
  custom_metadata {
    key: "path_to_custom_metadata"
    value: "etc/configuration/file"
  }
}

Esempio completo

# proto-file: //system/software_defined_vehicle/core_services/service_bundles_registry/proto/sdv_service_bundles_manifest.proto
# proto-message: SdvServiceBundleManifestEntry

# SDV service bundle.
sdv_service_bundle_metadata {
  # Name of the service bundle.
  # Must follow SDV service naming convention rules.
  name: "TheNameOfTheServiceBundle"

  # Service Bundle Version Number.
  # Must be non-negative number.
  version_number: 42

  # Service Bundle Version Name.
  # Must be non-empty string.
  version_name: "42.0.beta"

  # Path to the native library to be loaded as service bundle.
  # Must be the relative path from the APEX root directory.
  native_library_path: "lib64/libservice_bundle.so"

  # The log tag used for Android logging for the service bundle.
  # If not specified, a tag derived from service bundle FQIN will be used.
  log_tag: "current_service_bundle"

  # Path to the orchestration config file.
  # Warning: Shall be relative path to the APEX root directory.
  orchestration_config_path: "etc/configuration/orchestration/configuration.textproto"

  # Path to the file with protobuf schemas extracted from bundle's VSIDL definition.
  # Warning: Must be relative path to the APEX root directory.
  vsidl_schemas_path: "etc/vsidl_provider/TheNameOfTheServiceBundle-vsidl-config.binpb"

  # Path to the diagnostics config file.
  # Warning: Must be relative path to the APEX root directory.
  diagnostics_config_path: "etc/vsidl_provider/TheNameOfTheServiceBundle-diag-config.binpb"

  # Path to the SOME/IP config file. To be used in SOME/IP configuration apex only.
  # Warning: Must be relative path to the APEX root directory.
  external_protocol_mapping_path: "etc/vsidl_provider/someip-config.binpb"

  # Custom service bundle metadata string.
  # Key is a string, value is a string.
  custom_metadata {
    key: "key" value: "value"
  }

  # Custom metadata values are stored in etc/.
  custom_metadata {
    key: "path_to_custom_metadata"
    value: "etc/configuration/file"
  }
}

Riferimenti