differed VCM consensus
This commit is contained in:
parent
fe77c73492
commit
0caf5ce6be
21
src/config.c
21
src/config.c
|
|
@ -358,16 +358,37 @@ int facilities_config() {
|
|||
facilities.coordination.active = config->facilities.mcm.activate;
|
||||
if (!strcmp("vcm-RR", config->facilities.mcm.protocol)) {
|
||||
facilities.coordination.protocol = MC_PROTOCOL_VCM_RR;
|
||||
facilities.coordination.chain.enabled = true;
|
||||
} else if (!strcmp("vcm-RR1C", config->facilities.mcm.protocol)) {
|
||||
facilities.coordination.protocol = MC_PROTOCOL_VCM_RR1C;
|
||||
facilities.coordination.chain.enabled = true;
|
||||
} else if (!strcmp("vcm-RR1Cc", config->facilities.mcm.protocol)) {
|
||||
facilities.coordination.protocol = MC_PROTOCOL_VCM_RR1C;
|
||||
facilities.coordination.chain.enabled = true;
|
||||
} else if (!strcmp("vcm-RRAC", config->facilities.mcm.protocol)) {
|
||||
facilities.coordination.protocol = MC_PROTOCOL_VCM_RRAC;
|
||||
facilities.coordination.chain.enabled = true;
|
||||
} else if (!strcmp("vcm-RRACc", config->facilities.mcm.protocol)) {
|
||||
facilities.coordination.protocol = MC_PROTOCOL_VCM_RRAC;
|
||||
facilities.coordination.chain.enabled = true;
|
||||
} else if (!strcmp("dvcm-RR-PBFT", config->facilities.mcm.protocol)) {
|
||||
facilities.coordination.protocol = MC_PROTOCOL_VCM_RR;
|
||||
facilities.coordination.chain.enabled = false;
|
||||
} else if (!strcmp("dvcm-RR1C-PBFT", config->facilities.mcm.protocol)) {
|
||||
facilities.coordination.protocol = MC_PROTOCOL_VCM_RR1C;
|
||||
facilities.coordination.chain.enabled = false;
|
||||
} else if (!strcmp("dvcm-RR1Cc-PBFT", config->facilities.mcm.protocol)) {
|
||||
facilities.coordination.protocol = MC_PROTOCOL_VCM_RR1C;
|
||||
facilities.coordination.chain.enabled = false;
|
||||
} else if (!strcmp("dvcm-RRAC-PBFT", config->facilities.mcm.protocol)) {
|
||||
facilities.coordination.protocol = MC_PROTOCOL_VCM_RRAC;
|
||||
facilities.coordination.chain.enabled = false;
|
||||
} else if (!strcmp("dvcm-RRACc-PBFT", config->facilities.mcm.protocol)) {
|
||||
facilities.coordination.protocol = MC_PROTOCOL_VCM_RRAC;
|
||||
facilities.coordination.chain.enabled = false;
|
||||
} else {
|
||||
facilities.coordination.protocol = MC_PROTOCOL_VCM_RR;
|
||||
facilities.coordination.chain.enabled = true;
|
||||
}
|
||||
facilities.coordination.vcm_period_min = config->facilities.mcm.period_min;
|
||||
facilities.coordination.vcm_period_max = config->facilities.mcm.period_max;
|
||||
|
|
|
|||
10
src/vcm.c
10
src/vcm.c
|
|
@ -183,7 +183,7 @@ static void vcm_reject(VCM_t* vcm, mc_neighbour_s* neighbour) {
|
|||
vcm_rep->vcm.currentPosition.longitude = lon;
|
||||
asn_ulong2INTEGER(&vcm_rep->vcm.currentPosition.timestamp, now);
|
||||
|
||||
if (coordination->chain.id) {
|
||||
if (coordination->chain.enabled && coordination->chain.id) {
|
||||
vcm_rep->vcm.chain = calloc(1, sizeof(ChainInformation_t));
|
||||
vcm_rep->vcm.chain->id = coordination->chain.id;
|
||||
vcm_rep->vcm.chain->link.buf = malloc(32);
|
||||
|
|
@ -347,7 +347,7 @@ static bool commit() {
|
|||
mvc->negotiation->choice.commit.qp.choice.requesterId = coordination->session.requester->station_id;
|
||||
}
|
||||
|
||||
if (coordination->chain.id) {
|
||||
if (coordination->chain.enabled && coordination->chain.id) {
|
||||
vcm_com->vcm.chain = calloc(1, sizeof(ChainInformation_t));
|
||||
vcm_com->vcm.chain->id = coordination->chain.id;
|
||||
vcm_com->vcm.chain->link.buf = malloc(32);
|
||||
|
|
@ -493,7 +493,7 @@ static int vcm_check_handle_request(VCM_t* vcm, mc_neighbour_s* neighbour) {
|
|||
vcm_rep->vcm.currentPosition.longitude = lon;
|
||||
asn_ulong2INTEGER(&vcm_rep->vcm.currentPosition.timestamp, now);
|
||||
|
||||
if (coordination->chain.id && vcm->vcm.chain) {
|
||||
if (coordination->chain.enabled && coordination->chain.id && vcm->vcm.chain) {
|
||||
vcm_rep->vcm.chain = calloc(1, sizeof(ChainInformation_t));
|
||||
vcm_rep->vcm.chain->id = coordination->chain.id;
|
||||
vcm_rep->vcm.chain->link.buf = malloc(32);
|
||||
|
|
@ -739,7 +739,7 @@ static int intersection_detected(VCM_t* vcm, mc_neighbour_s* neighbour) {
|
|||
vcm_req->vcm.currentPosition.longitude = lon;
|
||||
asn_ulong2INTEGER(&vcm_req->vcm.currentPosition.timestamp, now);
|
||||
|
||||
if (coordination->chain.id) {
|
||||
if (coordination->chain.enabled && coordination->chain.id) {
|
||||
vcm_req->vcm.chain = calloc(1, sizeof(ChainInformation_t));
|
||||
vcm_req->vcm.chain->id = coordination->chain.id;
|
||||
vcm_req->vcm.chain->link.buf = malloc(32);
|
||||
|
|
@ -1046,7 +1046,7 @@ static int mk_vcm() {
|
|||
vcm->vcm.currentPosition.longitude = lon;
|
||||
asn_ulong2INTEGER(&vcm->vcm.currentPosition.timestamp, now);
|
||||
|
||||
if (coordination->chain.id) {
|
||||
if (coordination->chain.enabled && coordination->chain.id) {
|
||||
vcm->vcm.chain = calloc(1, sizeof(ChainInformation_t));
|
||||
vcm->vcm.chain->id = coordination->chain.id;
|
||||
vcm->vcm.chain->link.buf = malloc(32);
|
||||
|
|
|
|||
Loading…
Reference in New Issue