/** * called on Data Record arrival */ void IpfixDbWriter::onDataRecord(IpfixDataRecord* record) { // only treat non-Options Data Records (although we cannot be sure that there is a Flow inside) if((record->templateInfo->setId != TemplateInfo::NetflowTemplate) && (record->templateInfo->setId != TemplateInfo::IpfixTemplate) && (record->templateInfo->setId != TemplateInfo::IpfixDataTemplate)) { record->removeReference(); return; } processDataDataRecord(*record->sourceID.get(), *record->templateInfo.get(), record->dataLength, record->data); record->removeReference(); }
/** * called on Data Record arrival */ void IpfixDbWriterMongo::onDataRecord(IpfixDataRecord* record) { // only treat non-Options Data Records (although we cannot be sure that there is a Flow inside) if((record->templateInfo->setId != TemplateInfo::NetflowTemplate) && (record->templateInfo->setId != TemplateInfo::IpfixTemplate) && (record->templateInfo->setId != TemplateInfo::IpfixDataTemplate)) { record->removeReference(); return; } msg(MSG_DEBUG, "IpfixDbWriterMongo: Data record received will be passed for processing"); processDataDataRecord(*record->sourceID.get(), *record->templateInfo.get(), record->dataLength, record->data); record->removeReference(); }
/** * function receive the when callback is started */ void IpfixDbWriter::onDataRecord(IpfixDataRecord* record) { // convert templateInfo to dataTemplateInfo IpfixRecord::DataTemplateInfo dataTemplateInfo; dataTemplateInfo.templateId = 0; dataTemplateInfo.preceding = 0; dataTemplateInfo.freePointers = false; // don't free the given pointers, as they are taken from a different structure dataTemplateInfo.fieldCount = record->templateInfo->fieldCount; /**< number of regular fields */ dataTemplateInfo.fieldInfo = record->templateInfo->fieldInfo; /**< array of FieldInfos describing each of these fields */ dataTemplateInfo.dataCount = 0; /**< number of fixed-value fields */ dataTemplateInfo.dataInfo = NULL; /**< array of FieldInfos describing each of these fields */ dataTemplateInfo.data = NULL; /**< data start pointer for fixed-value fields */ dataTemplateInfo.userData = record->templateInfo->userData; /**< pointer to a field that can be used by higher-level modules */ DPRINTF("receiveRec calls receiveDataRec"); processDataDataRecord(record->sourceID.get(), &dataTemplateInfo, record->dataLength, record->data); }
/** * function receive the DataRecord or DataDataRecord when callback is started */ void IpfixDbWriter::onDataDataRecord(IpfixDataDataRecord* record) { processDataDataRecord(record->sourceID.get(), record->dataTemplateInfo.get(), record->dataLength, record->data); }