VEEInfo handle placeholder

This commit is contained in:
emanuel 2023-04-24 19:04:39 +01:00
parent ba2a47b08d
commit ee982c51ab
3 changed files with 43 additions and 0 deletions

View File

@ -141,6 +141,10 @@ static int facilities_request(void *responder, uint8_t *msg, uint32_t msg_len) {
rv = facilities_request_chaininfo_set(responder, &fr->choice.data.choice.chainInfoSet); rv = facilities_request_chaininfo_set(responder, &fr->choice.data.choice.chainInfoSet);
break; break;
case FacilitiesDataRequest_PR_veeInfo:
rv = facilities_request_veeinfo(responder, &fr->choice.data.choice.veeInfo);
break;
default: default:
log_error("<- unrecognized FDR type received (%d)", fr->choice.data.present); log_error("<- unrecognized FDR type received (%d)", fr->choice.data.present);
facilities_request_result_rejected(responder); facilities_request_result_rejected(responder);

View File

@ -605,6 +605,44 @@ cleanup:
return rv; return rv;
} }
int facilities_request_veeinfo(void *responder, VEEInfo_t *vi) {
int rv = 0;
pthread_mutex_lock(&facilities.coordination.lock);
/*
facilities.coordination.chain.id = cis->idSet;
for (int i = 0; i < cis->linkSet.list.count; ++i) {
memcpy(
facilities.coordination.chain.links[i],
cis->linkSet.list.array[i]->buf,
cis->linkSet.list.array[i]->size);
}
facilities.coordination.chain.n_links = cis->linkSet.list.count;
*/
pthread_mutex_unlock(&facilities.coordination.lock);
FacilitiesReply_t *frep = calloc(1, sizeof(FacilitiesReply_t));
frep->present = FacilitiesReply_PR_data;
frep->choice.data.present = FacilitiesDataReply_PR_veeInfo;
frep->choice.data.choice.veeInfo = FacilitiesResultCode_accepted;
uint8_t frep_oer[64];
asn_enc_rval_t enc = oer_encode_to_buffer(&asn_DEF_FacilitiesReply, NULL, frep, frep_oer, 64);
if (enc.encoded == -1) {
log_error("failed encoding FDResult (%s)", enc.failed_type->name);
facilities_request_result_rejected(responder);
rv = 1;
goto cleanup;
}
itss_0send(responder, frep_oer, enc.encoded);
cleanup:
ASN_STRUCT_FREE(asn_DEF_FacilitiesReply, frep);
return rv;
}
int transport_indication_btp(BTPPacketIndication_t* bpi, void** security_socket) { int transport_indication_btp(BTPPacketIndication_t* bpi, void** security_socket) {
int rv = 0; int rv = 0;

View File

@ -13,6 +13,7 @@ int facilities_request_active_episodes(void* responder, FacilitiesRequest_t* fr)
int facilities_request_attribute_types(void* responder, FacilitiesRequest_t* fr); int facilities_request_attribute_types(void* responder, FacilitiesRequest_t* fr);
int facilities_request_loaded_protected_zones(void* responder, FacilitiesRequest_t* fr); int facilities_request_loaded_protected_zones(void* responder, FacilitiesRequest_t* fr);
int facilities_request_chaininfo_set(void* responder, ChainInformationSet_t* cis); int facilities_request_chaininfo_set(void* responder, ChainInformationSet_t* cis);
int facilities_request_veeinfo(void* responder, VEEInfo_t* vi);
int transport_indication_data(TransportDataIndication_t* tdi); int transport_indication_data(TransportDataIndication_t* tdi);
int transport_indication_btp(BTPPacketIndication_t* bpi, void** security_socket); int transport_indication_btp(BTPPacketIndication_t* bpi, void** security_socket);