fatal("ipfix_end_data_set failed");
msg(MSG_FATAL, "ipfix_end_data_set failed");
int sndDataDataRecord(void* ipfixSender_, SourceID sourceID, DataTemplateInfo* dataTemplateInfo, uint16_t length, FieldData* data) {	IpfixSender* ipfixSender = ipfixSender_;	ipfix_exporter* exporter = (ipfix_exporter*)ipfixSender->ipfixExporter;	/* get Template ID from Template's userData */	uint16_t my_n_template_id = *(uint16_t*)dataTemplateInfo->userData;		if (ipfix_start_data_set(exporter, &my_n_template_id) != 0 ) {		fatal("ipfix_start_data_set failed!");		return -1;		}			int i;		for (i = 0; i < dataTemplateInfo->fieldCount; i++) {		FieldInfo* fi = &dataTemplateInfo->fieldInfo[i];		/* Split IPv4 fields with length 5, i.e. fields with network mask attached */		if ((fi->type.id == IPFIX_TYPEID_sourceIPv4Address) && (fi->type.length == 5)) {			uint8_t* mask = &conversionRingbuffer[ringbufferPos++];			*mask = 32 - *(uint8_t*)(data + fi->offset + 4);			ipfix_put_data_field(exporter, data + fi->offset, 4);			ipfix_put_data_field(exporter, mask, 1);			}		else if ((fi->type.id == IPFIX_TYPEID_destinationIPv4Address) && (fi->type.length == 5)) {			uint8_t* mask = &conversionRingbuffer[ringbufferPos++];			*mask = 32 - *(uint8_t*)(data + fi->offset + 4);			ipfix_put_data_field(exporter, data + fi->offset, 4);			ipfix_put_data_field(exporter, mask, 1);			}		else {			ipfix_put_data_field(exporter, data + fi->offset, fi->type.length);			}				}	if (ipfix_end_data_set(exporter) != 0) {		fatal("ipfix_end_data_set failed");		return -1;		}	if (ipfix_send(exporter) != 0) {		fatal("ipfix_send failed");		return -1;		}		return 0;	}