From d87368a7792125a02c9729eecbc2870339964d46 Mon Sep 17 00:00:00 2001 From: emanuel Date: Wed, 1 Feb 2023 19:27:11 +0000 Subject: [PATCH] VCM commit qp --- src/vcm.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/vcm.c b/src/vcm.c index c20186b..07eb878 100644 --- a/src/vcm.c +++ b/src/vcm.c @@ -337,8 +337,13 @@ static bool commit() { 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.own_req ? - vcm_com->header.stationID : coordination->session.requester->station_id; + if (coordination->session.own_req) { + mvc->negotiation->choice.commit.qp.present = CoordinationCommitQP_PR_acceptedTrajectoryId; + mvc->negotiation->choice.commit.qp.choice.acceptedTrajectoryId = 0; + } else { + mvc->negotiation->choice.commit.qp.present = CoordinationCommitQP_PR_requesterId; + mvc->negotiation->choice.commit.qp.choice.requesterId = coordination->session.requester->station_id; + } if (coordination->chain.id) { vcm_com->vcm.chain = calloc(1, sizeof(ChainInformation_t)); @@ -471,6 +476,7 @@ static int vcm_check_handle_request(VCM_t* vcm, mc_neighbour_s* neighbour) { neighbour->session.requested = true; neighbour->session.nonce = request->nonce; neighbour->station_id = vcm->header.stationID; + coordination->session.nonce = request->nonce; coordination->session.requester = neighbour; coordination->session.t_init = now; @@ -776,7 +782,7 @@ static int intersection_detected(VCM_t* vcm, mc_neighbour_s* neighbour) { ProposedTrajectory_t* pt = mvc->negotiation->choice.request.desiredTrajectories.list.array[0]; mvc->negotiation->choice.request.requesterId = vcm->header.stationID; mvc->negotiation->choice.request.nonce = rand(); - neighbour->session.nonce = mvc->negotiation->choice.request.nonce; + coordination->session.nonce = mvc->negotiation->choice.request.nonce; pt->trajectory.list.count = trajectoryA_len - 1; pt->trajectory.list.size = sizeof(void*) * (trajectoryA_len - 1);