processOptionsTemplateSet(ipfixReceiver, ntohs(header->sourceId), set);
processOptionsTemplateSet(ipfixReceiver, ntohl(header->sourceId), set);
static int processIpfixPacket(IpfixReceiver* ipfixReceiver, byte* message, uint16_t length) {	IpfixHeader* header = (IpfixHeader*)message;	if (ntohs(header->length) != length) { 		errorf("Bad message length - expected %#06x, got %#06x", length, ntohs(header->length));		return -1; 		}	/* pointer to first set */	IpfixSetHeader* set = (IpfixSetHeader*)&header->data;	/* pointer beyond message */	IpfixSetHeader* setX = (IpfixSetHeader*)((char*)message + length); 	while (set < setX) {		if (ntohs(set->id) == IPFIX_SetId_Template) {  			processTemplateSet(ipfixReceiver, ntohs(header->sourceId), set);  			} else		if (ntohs(set->id) == IPFIX_SetId_OptionsTemplate) {  			processOptionsTemplateSet(ipfixReceiver, ntohs(header->sourceId), set);  			} else		if (ntohs(set->id) == IPFIX_SetId_DataTemplate) {  			processDataTemplateSet(ipfixReceiver, ntohs(header->sourceId), set);  			} else		if (ntohs(set->id) >= IPFIX_SetId_Data_Start) {  			processDataSet(ipfixReceiver, ntohs(header->sourceId), set);  			} else {			errorf("Unsupported Set ID - expected 2/3/4/256+, got %d", ntohs(set->id));  			}		set = (IpfixSetHeader*)((byte*)set + ntohs(set->length));		}	return 0;	}