Use security

This commit is contained in:
emanuel 2020-11-20 17:45:33 +00:00
parent eb89fea1f1
commit cf97d7e00d
4 changed files with 28 additions and 13 deletions

View File

@ -255,6 +255,11 @@ void *ca_service(void *fc) {
bdr->data.buf = malloc(256);
if (facilities->use_security) {
bdr->gnSecurityProfile = malloc(sizeof(long));
*bdr->gnSecurityProfile = 1;
}
uint8_t bdr_oer[256];
bdr_oer[0] = 4; // Facilities
while (!facilities->exit) {

View File

@ -100,7 +100,7 @@ int itss_config(void* facilities_s, char* config_file) {
// Values
// General
char *itss_type = NULL;
rv = extract_val_string(&itss_type, general, "itss-type");
rv += extract_val_string(&itss_type, general, "itss-type");
if (strcmp("obu", itss_type) == 0) {
facilities->station_type = 5;
} else if (strcmp("rsu", itss_type) == 0) {
@ -111,56 +111,60 @@ int itss_config(void* facilities_s, char* config_file) {
}
free(itss_type);
int use_security = 1;
rv += extract_val_bool(&use_security, security, "use-security");
facilities->use_security = use_security;
int station_id_random = 1;
rv = extract_val_bool(&station_id_random, security, "id-random");
rv += extract_val_bool(&station_id_random, security, "id-random");
facilities->id_random = station_id_random;
if (station_id_random) {
srand(time(NULL));
facilities->station_id = rand();
} else {
int64_t station_id_number;
rv = extract_val_int(&station_id_number, security, "station-id");
rv += extract_val_int(&station_id_number, security, "station-id");
facilities->station_id = station_id_number;
}
// DENM
int64_t denm_default_event_duration;
rv = extract_val_int(&denm_default_event_duration, denm, "default-event-duration");
rv += extract_val_int(&denm_default_event_duration, denm, "default-event-duration");
facilities->den->default_event_duration = denm_default_event_duration;
int64_t denm_nmax_active_events;
rv = extract_val_int(&denm_nmax_active_events, denm, "nmax-active-events");
rv += extract_val_int(&denm_nmax_active_events, denm, "nmax-active-events");
facilities->den->n_max_events = denm_nmax_active_events;
// CAM
int64_t obu_cam_period_min;
rv = extract_val_int(&obu_cam_period_min, cam, "obu-period-min");
rv += extract_val_int(&obu_cam_period_min, cam, "obu-period-min");
facilities->lightship->vehicle_gen_min = obu_cam_period_min;
int64_t obu_cam_period_max;
rv = extract_val_int(&obu_cam_period_max, cam, "obu-period-max");
rv += extract_val_int(&obu_cam_period_max, cam, "obu-period-max");
facilities->lightship->vehicle_gen_max = obu_cam_period_max;
int64_t rsu_cam_period_min;
rv = extract_val_int(&rsu_cam_period_min, cam, "rsu-period-min");
rv += extract_val_int(&rsu_cam_period_min, cam, "rsu-period-min");
facilities->lightship->rsu_gen_min = rsu_cam_period_min;
int64_t rsu_vehicle_permanence;
rv = extract_val_int(&rsu_vehicle_permanence, cam, "rsu-vehicle-permanence");
rv += extract_val_int(&rsu_vehicle_permanence, cam, "rsu-vehicle-permanence");
facilities->lightship->rsu_vehicle_permanence = rsu_vehicle_permanence;
// IVIM
int64_t nmax_active_services;
rv = extract_val_int(&nmax_active_services, ivim, "nmax-active-services");
rv += extract_val_int(&nmax_active_services, ivim, "nmax-active-services");
facilities->infrastructure->n_max_services = nmax_active_services;
int64_t replay_interval;
rv = extract_val_int(&replay_interval, ivim, "replay-interval");
rv += extract_val_int(&replay_interval, ivim, "replay-interval");
facilities->infrastructure->replay_interval = replay_interval;
// Replay
int replay_active = 1;
rv = extract_val_bool(&replay_active, replay, "activate");
rv += extract_val_bool(&replay_active, replay, "activate");
facilities->replay = replay_active;

View File

@ -143,7 +143,7 @@ static int facilities_request(facilities_t *facilities, void* responder, uint8_t
FacilitiesDataRequest_t *fdreq = calloc(1, sizeof(FacilitiesDataRequest_t));
FacilitiesDataResult_t *fdres = calloc(1, sizeof(FacilitiesDataResult_t));
BTPDataRequest_t *bdr = calloc(1, sizeof(BTPDataRequest_t));
BTPDataRequest_t *bdr = calloc(1, sizeof(BTPDataRequest_t));
asn_dec_rval_t dec = oer_decode(NULL, &asn_DEF_FacilitiesDataRequest, (void**) &fdreq, msg, msg_len);
if (dec.code) {
@ -316,6 +316,11 @@ static int facilities_request(facilities_t *facilities, void* responder, uint8_t
*bdr->gnIsUpdate = 1;
}
if (facilities->use_security) {
bdr->gnSecurityProfile = malloc(sizeof(long));
*bdr->gnSecurityProfile = 1;
}
// Encode ITS message into OER
uint8_t bdr_oer[2048];
bdr_oer[0] = 4; // [facilities] service id

View File

@ -38,6 +38,7 @@ typedef struct facilities {
infrastructure_t* infrastructure;
int station_type;
bool use_security;
bool replay;
pthread_mutex_t lock;