Config MCM protocol
This commit is contained in:
parent
7d1b1eabb5
commit
ea3f129b69
10
src/config.c
10
src/config.c
|
|
@ -1,6 +1,7 @@
|
|||
#include "config.h"
|
||||
#include "facilities.h"
|
||||
#include "tpm.h"
|
||||
#include "vcm.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
|
@ -353,8 +354,15 @@ int facilities_config() {
|
|||
}
|
||||
facilities.tolling.station.obu.client_id = config->facilities.tpm.client_id;
|
||||
|
||||
// VCM
|
||||
// MCM
|
||||
facilities.coordination.active = config->facilities.mcm.activate;
|
||||
if (!strcmp("vcm-reqrep", config->facilities.mcm.protocol)) {
|
||||
facilities.coordination.protocol = MC_PROTOCOL_REQ_REP;
|
||||
} else if (!strcmp("vcm-reqrepcom", config->facilities.mcm.protocol)) {
|
||||
facilities.coordination.protocol = MC_PROTOCOL_REQ_REP_COM;
|
||||
} else {
|
||||
facilities.coordination.protocol = MC_PROTOCOL_REQ_REP;
|
||||
}
|
||||
facilities.coordination.vcm_period_min = config->facilities.mcm.period_min;
|
||||
facilities.coordination.vcm_period_max = config->facilities.mcm.period_max;
|
||||
|
||||
|
|
|
|||
14
src/vcm.c
14
src/vcm.c
|
|
@ -172,7 +172,7 @@ static void vcm_reject(VCM_t* vcm, mc_neighbour_s* neighbour) {
|
|||
vcm->vcm.chain->area->trees.list.array = malloc(1 * sizeof(OCTET_STRING_t*));
|
||||
for (int q = 0; q < 1; ++q) {
|
||||
vcm->vcm.chain->area->trees.list.array[q] = calloc(1, sizeof(OCTET_STRING_t));
|
||||
vcm->vcm.chain->area->trees.list.array[q]->buf = malloc(4);
|
||||
vcm->vcm.chain->area->trees.list.array[q]->buf = calloc(1,4);
|
||||
vcm->vcm.chain->area->trees.list.array[q]->size = 4;
|
||||
}
|
||||
}
|
||||
|
|
@ -325,6 +325,7 @@ static int vcm_check_handle_request(VCM_t* vcm, mc_neighbour_s* neighbour) {
|
|||
neighbour->proposed = true;
|
||||
neighbour->session.requested = true;
|
||||
neighbour->session.nonce = request->nonce;
|
||||
neighbour->station_id = vcm->header.stationID;
|
||||
coordination->session.requester = neighbour;
|
||||
|
||||
vcm_rep = calloc(1, sizeof(VCM_t));
|
||||
|
|
@ -358,7 +359,7 @@ static int vcm_check_handle_request(VCM_t* vcm, mc_neighbour_s* neighbour) {
|
|||
vcm_rep->vcm.chain->area->trees.list.array = malloc(1 * sizeof(OCTET_STRING_t*));
|
||||
for (int q = 0; q < 1; ++q) {
|
||||
vcm_rep->vcm.chain->area->trees.list.array[q] = calloc(1, sizeof(OCTET_STRING_t));
|
||||
vcm_rep->vcm.chain->area->trees.list.array[q]->buf = malloc(4);
|
||||
vcm_rep->vcm.chain->area->trees.list.array[q]->buf = calloc(1,4);
|
||||
vcm_rep->vcm.chain->area->trees.list.array[q]->size = 4;
|
||||
}
|
||||
}
|
||||
|
|
@ -578,10 +579,11 @@ static int vcm_check_handle_reply(VCM_t* vcm, mc_neighbour_s* neighbour) {
|
|||
mvc->negotiation = calloc(1, sizeof(CoordinationNegotiation_t));
|
||||
mvc->negotiation->present = CoordinationNegotiation_PR_commit;
|
||||
mvc->negotiation->choice.commit.nonce = coordination->session.nonce;
|
||||
mvc->negotiation->choice.commit.requesterId = coordination->session.requester->station_id;
|
||||
mvc->negotiation->choice.commit.requesterId = reply->requesterId;
|
||||
|
||||
tx_vcm(vcm_com);
|
||||
ASN_STRUCT_FREE(asn_DEF_VCM, vcm);
|
||||
ASN_STRUCT_FREE(asn_DEF_VCM, vcm_com);
|
||||
log_warn("SENDING COMMIT");
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -649,7 +651,7 @@ static int intersection_detected(VCM_t* vcm, mc_neighbour_s* neighbour) {
|
|||
vcm->vcm.chain->area->trees.list.array = malloc(1 * sizeof(OCTET_STRING_t*));
|
||||
for (int q = 0; q < 1; ++q) {
|
||||
vcm->vcm.chain->area->trees.list.array[q] = calloc(1, sizeof(OCTET_STRING_t));
|
||||
vcm->vcm.chain->area->trees.list.array[q]->buf = malloc(4);
|
||||
vcm->vcm.chain->area->trees.list.array[q]->buf = calloc(1,4);
|
||||
vcm->vcm.chain->area->trees.list.array[q]->size = 4;
|
||||
}
|
||||
}
|
||||
|
|
@ -959,7 +961,7 @@ static int mk_vcm() {
|
|||
vcm->vcm.chain->area->trees.list.array = malloc(1 * sizeof(OCTET_STRING_t*));
|
||||
for (int q = 0; q < 1; ++q) {
|
||||
vcm->vcm.chain->area->trees.list.array[q] = calloc(1, sizeof(OCTET_STRING_t));
|
||||
vcm->vcm.chain->area->trees.list.array[q]->buf = malloc(4);
|
||||
vcm->vcm.chain->area->trees.list.array[q]->buf = calloc(1,4);
|
||||
vcm->vcm.chain->area->trees.list.array[q]->size = 4;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue