@gavinaiken/netflowv9
Version:
NetFlow Version 1,5,7,9 compatible library (with support for NetFlow v9 options template & data) for Node.JS. It also has experimental support for IPFIX (NetFlow v10).
494 lines (490 loc) • 30.4 kB
JavaScript
const {
decNumRule,
decTimestamp,
decTsMs,
decTsMcs,
decTsNs,
decIpv4Rule,
decIpv6Rule,
decMacRule,
decStringRule,
decAsciiStringRule,
} = require('./fieldRules');
var nfTypes = {
1: {name: 'in_bytes', compileRule: decNumRule},
2: {name: 'in_pkts', compileRule: decNumRule},
3: {name: 'flows', compileRule: decNumRule},
4: {name: 'protocol', compileRule: decNumRule},
5: {name: 'src_tos', compileRule: decNumRule},
6: {name: 'tcp_flags', compileRule: decNumRule},
7: {name: 'l4_src_port', compileRule: decNumRule},
8: {name: 'ipv4_src_addr', compileRule: decIpv4Rule},
9: {name: 'src_mask', compileRule: decNumRule},
10: {name: 'input_snmp', compileRule: decNumRule},
11: {name: 'l4_dst_port', compileRule: decNumRule},
12: {name: 'ipv4_dst_addr', compileRule: decIpv4Rule},
13: {name: 'dst_mask', compileRule: decNumRule},
14: {name: 'output_snmp', compileRule: decNumRule},
15: {name: 'ipv4_next_hop', compileRule: decIpv4Rule},
16: {name: 'src_as', compileRule: decNumRule},
17: {name: 'dst_as', compileRule: decNumRule},
18: {name: 'bgp_ipv4_next_hop', compileRule: decIpv4Rule},
19: {name: 'mul_dst_pkts', compileRule: decNumRule},
20: {name: 'mul_dst_bytes', compileRule: decNumRule},
21: {name: 'last_switched', compileRule: decNumRule},
22: {name: 'first_switched', compileRule: decNumRule},
23: {name: 'out_bytes', compileRule: decNumRule},
24: {name: 'out_pkts', compileRule: decNumRule},
25: {name: 'min_pkt_lngth', compileRule: decNumRule},
26: {name: 'max_pkt_lngth', compileRule: decNumRule},
27: {name: 'ipv6_src_addr', compileRule: decIpv6Rule},
28: {name: 'ipv6_dst_addr', compileRule: decIpv6Rule},
29: {name: 'ipv6_src_mask', compileRule: decNumRule},
30: {name: 'ipv6_dst_mask', compileRule: decNumRule},
31: {name: 'ipv6_flow_label', compileRule: decNumRule},
32: {name: 'icmp_type', compileRule: decNumRule},
33: {name: 'mul_igmp_type', compileRule: decNumRule},
34: {name: 'sampling_interval', compileRule: decNumRule},
35: {name: 'sampling_algorithm', compileRule: decNumRule},
36: {name: 'flow_active_timeout', compileRule: decNumRule},
37: {name: 'flow_inactive_timeout', compileRule: decNumRule},
38: {name: 'engine_type', compileRule: decNumRule},
39: {name: 'engine_id', compileRule: decNumRule},
40: {name: 'total_bytes_exp', compileRule: decNumRule},
41: {name: 'total_pkts_exp', compileRule: decNumRule},
42: {name: 'total_flows_exp', compileRule: decNumRule},
44: {name: 'ipv4_src_prefix', compileRule: decIpv4Rule},
45: {name: 'ipv4_dst_prefix', compileRule: decIpv4Rule},
46: {name: 'mpls_top_label_type', compileRule: decIpv4Rule},
47: {name: 'mpls_top_label_ip_addr', compileRule: decIpv4Rule},
48: {name: 'flow_sampler_id', compileRule: decNumRule},
49: {name: 'flow_sampler_mode', compileRule: decNumRule},
50: {name: 'flow_sampler_random_interval', compileRule: decNumRule},
52: {name: 'min_ttl', compileRule: decNumRule},
53: {name: 'max_ttl', compileRule: decNumRule},
54: {name: 'ipv4_ident', compileRule: decNumRule},
55: {name: 'dst_tos', compileRule: decNumRule},
56: {name: 'in_src_mac', compileRule: decMacRule},
57: {name: 'out_dst_mac', compileRule: decMacRule},
58: {name: 'src_vlan', compileRule: decNumRule},
59: {name: 'dst_vlan', compileRule: decNumRule},
60: {name: 'ip_protocol_version', compileRule: decNumRule},
61: {name: 'direction', compileRule: decNumRule},
62: {name: 'ipv6_next_hop', compileRule: decIpv6Rule},
63: {name: 'bpg_ipv6_next_hop', compileRule: decIpv6Rule},
64: {name: 'ipv6_option_headers', compileRule: decNumRule},
70: {name: 'mpls_label_1', compileRule: decNumRule},
71: {name: 'mpls_label_2', compileRule: decNumRule},
72: {name: 'mpls_label_3', compileRule: decNumRule},
73: {name: 'mpls_label_4', compileRule: decNumRule},
74: {name: 'mpls_label_5', compileRule: decNumRule},
75: {name: 'mpls_label_6', compileRule: decNumRule},
76: {name: 'mpls_label_7', compileRule: decNumRule},
77: {name: 'mpls_label_8', compileRule: decNumRule},
78: {name: 'mpls_label_9', compileRule: decNumRule},
79: {name: 'mpls_label_10', compileRule: decNumRule},
80: {name: 'in_dst_mac', compileRule: decMacRule},
81: {name: 'out_src_mac', compileRule: decMacRule},
82: {name: 'if_name', compileRule: decStringRule},
83: {name: 'if_desc', compileRule: decStringRule},
84: {name: 'sampler_name', compileRule: decStringRule},
85: {name: 'in_permanent_bytes', compileRule: decNumRule},
86: {name: 'in_permanent_pkts', compileRule: decNumRule},
87: {name: 'flagsAndSamplerId', compileRule: decNumRule}, // Deprecated
88: {name: 'fragment_offset', compileRule: decNumRule},
89: {name: 'fw_status', compileRule: decNumRule},
90: {name: 'mpls_pal_rd', compileRule: decNumRule},
91: {name: 'mpls_prefix_len', compileRule: decNumRule},
92: {name: 'src_traffic_index', compileRule: decNumRule},
93: {name: 'dst_traffic_index', compileRule: decNumRule},
94: {name: 'application_descr', compileRule: decStringRule},
95: {name: 'application_tag', compileRule: decMacRule},
96: {name: 'application_name', compileRule: decStringRule},
98: {name: 'postIpDiffServCodePoint', compileRule: decNumRule},
99: {name: 'replication_factor', compileRule: decNumRule},
100: {name: 'className', compileRule: decStringRule},
101: {name: 'classificationEngineId', compileRule: decNumRule},
102: {name: 'layer2packetSectionOffset', compileRule: decNumRule}, // Deprecated
103: {name: 'layer2packetSectionSize', compileRule: decNumRule}, // Deprecated
104: {name: 'layer2packetSectionData', compileRule: decMacRule},
//above 127 is in ipfix
128: {name: 'in_as', compileRule: decNumRule},
129: {name: 'out_as', compileRule: decNumRule},
130: {name: 'exporterIPv4Address', compileRule: decIpv4Rule},
131: {name: 'exporterIPv6Address', compileRule: decIpv6Rule},
132: {name: 'droppedOctetDeltaCount', compileRule: decNumRule},
133: {name: 'droppedPacketDeltaCount', compileRule: decNumRule},
134: {name: 'droppedOctetTotalCount', compileRule: decNumRule},
135: {name: 'droppedPacketTotalCount', compileRule: decNumRule},
136: {name: 'flowEndReason', compileRule: decNumRule},
137: {name: 'commonPropertiesId', compileRule: decNumRule},
138: {name: 'observationPointId', compileRule: decNumRule},
139: {name: 'icmpTypeCodeIPv6', compileRule: decNumRule},
140: {name: 'mplsTopLabelIPv6Address', compileRule: decIpv6Rule},
141: {name: 'lineCardId', compileRule: decNumRule},
142: {name: 'portId', compileRule: decNumRule},
143: {name: 'meteringProcessId', compileRule: decNumRule},
144: {name: 'exportingProcessId', compileRule: decNumRule},
145: {name: 'templateId', compileRule: decNumRule},
146: {name: 'wlanChannelId', compileRule: decNumRule},
147: {name: 'wlanSSID', compileRule: decStringRule},
148: {name: 'flowId', compileRule: decNumRule},
149: {name: 'observationDomainId', compileRule: decNumRule},
150: {name: 'flowStartSeconds', compileRule: decTimestamp},
151: {name: 'flowEndSeconds', compileRule: decTimestamp},
152: {name: 'flowStartMilliseconds', compileRule: decTsMs},
153: {name: 'flowEndMilliseconds', compileRule: decTsMs},
154: {name: 'flowStartMicroseconds', compileRule: decTsMcs},
155: {name: 'flowEndMicroseconds', compileRule: decTsMcs},
156: {name: 'flowStartNanoseconds', compileRule: decTsNs},
157: {name: 'flowEndNanoseconds', compileRule: decTsNs},
158: {name: 'flowStartDeltaMicroseconds', compileRule: decNumRule},
159: {name: 'flowEndDeltaMicroseconds', compileRule: decNumRule},
160: {name: 'systemInitTimeMilliseconds', compileRule: decTsMs},
161: {name: 'flowDurationMilliseconds', compileRule: decNumRule},
162: {name: 'flowDurationMicroseconds', compileRule: decNumRule},
163: {name: 'observedFlowTotalCount', compileRule: decNumRule},
164: {name: 'ignoredPacketTotalCount', compileRule: decNumRule},
165: {name: 'ignoredOctetTotalCount', compileRule: decNumRule},
166: {name: 'notSentFlowTotalCount', compileRule: decNumRule},
167: {name: 'notSentPacketTotalCount', compileRule: decNumRule},
168: {name: 'notSentOctetTotalCount', compileRule: decNumRule},
169: {name: 'destinationIPv6Prefix', compileRule: decIpv6Rule},
170: {name: 'sourceIPv6Prefix', compileRule: decIpv6Rule},
171: {name: 'postOctetTotalCount', compileRule: decNumRule},
172: {name: 'postPacketTotalCount', compileRule: decNumRule},
173: {name: 'flowKeyIndicator', compileRule: decNumRule},
174: {name: 'postMCastPacketTotalCount', compileRule: decNumRule},
175: {name: 'postMCastOctetTotalCount', compileRule: decNumRule},
176: {name: 'icmpTypeIPv4', compileRule: decNumRule},
177: {name: 'icmpCodeIPv4', compileRule: decNumRule},
178: {name: 'icmpTypeIPv6', compileRule: decNumRule},
179: {name: 'icmpCodeIPv6', compileRule: decNumRule},
180: {name: 'udpSourcePort', compileRule: decNumRule},
181: {name: 'udpDestinationPort', compileRule: decNumRule},
182: {name: 'tcpSourcePort', compileRule: decNumRule},
183: {name: 'tcpDestinationPort', compileRule: decNumRule},
184: {name: 'tcpSequenceNumber', compileRule: decNumRule},
185: {name: 'tcpAcknowledgementNumber', compileRule: decNumRule},
186: {name: 'tcpWindowSize', compileRule: decNumRule},
187: {name: 'tcpUrgentPointer', compileRule: decNumRule},
188: {name: 'tcpHeaderLength', compileRule: decNumRule},
189: {name: 'ipHeaderLength', compileRule: decNumRule},
190: {name: 'totalLengthIPv4', compileRule: decNumRule},
191: {name: 'payloadLengthIPv6', compileRule: decNumRule},
192: {name: 'ipTTL', compileRule: decNumRule},
193: {name: 'nextHeaderIPv6', compileRule: decNumRule},
194: {name: 'mplsPayloadLength', compileRule: decNumRule},
195: {name: 'ipDiffServCodePoint', compileRule: decNumRule},
//the following are taken from from http://www.iana.org/assignments/ipfix/ipfix.xhtml
196: {name: 'ipPrecedence', compileRule: decNumRule},
197: {name: 'fragmentFlags', compileRule: decNumRule},
198: {name: 'octetDeltaSumOfSquares', compileRule: decNumRule},
199: {name: 'octetTotalSumOfSquares', compileRule: decNumRule},
200: {name: 'mplsTopLabelTTL', compileRule: decNumRule},
201: {name: 'mplsLabelStackLength', compileRule: decNumRule},
202: {name: 'mplsLabelStackDepth', compileRule: decNumRule},
203: {name: 'mplsTopLabelExp', compileRule: decNumRule},
204: {name: 'ipPayloadLength', compileRule: decNumRule},
205: {name: 'udpMessageLength', compileRule: decNumRule},
206: {name: 'isMulticast', compileRule: decNumRule},
207: {name: 'ipv4IHL', compileRule: decNumRule},
208: {name: 'ipv4Options', compileRule: decNumRule},
209: {name: 'tcpOptions', compileRule: decNumRule},
210: {name: 'paddingOctets', compileRule: decMacRule},
211: {name: 'collectorIPv4Address', compileRule: decIpv4Rule},
212: {name: 'collectorIPv6Address', compileRule: decIpv6Rule},
213: {name: 'exportInterface', compileRule: decNumRule},
214: {name: 'exportProtocolVersion', compileRule: decNumRule},
215: {name: 'exportTransportProtocol', compileRule: decNumRule},
216: {name: 'collectorTransportPort', compileRule: decNumRule},
217: {name: 'exporterTransportPort', compileRule: decNumRule},
218: {name: 'tcpSynTotalCount', compileRule: decNumRule},
219: {name: 'tcpFinTotalCount', compileRule: decNumRule},
220: {name: 'tcpRstTotalCount', compileRule: decNumRule},
221: {name: 'tcpPshTotalCount', compileRule: decNumRule},
222: {name: 'tcpAckTotalCount', compileRule: decNumRule},
223: {name: 'tcpUrgTotalCount', compileRule: decNumRule},
224: {name: 'ipTotalLength', compileRule: decNumRule},
225: {name: 'postNATSourceIPv4Address', compileRule: decIpv4Rule},
226: {name: 'postNATDestinationIPv4Address', compileRule: decIpv4Rule},
227: {name: 'postNAPTSourceTransportPort', compileRule: decNumRule},
228: {name: 'postNAPTDestinationTransportPort', compileRule: decNumRule},
229: {name: 'natOriginatingAddressRealm', compileRule: decNumRule},
230: {name: 'natEvent', compileRule: decNumRule},
231: {name: 'initiatorOctets', compileRule: decNumRule},
232: {name: 'responderOctets', compileRule: decNumRule},
233: {name: 'firewallEvent', compileRule: decNumRule},
234: {name: 'ingressVRFID', compileRule: decNumRule},
235: {name: 'egressVRFID', compileRule: decNumRule},
236: {name: 'VRFname', compileRule: decStringRule},
237: {name: 'postMplsTopLabelExp', compileRule: decNumRule},
238: {name: 'tcpWindowScale', compileRule: decNumRule},
239: {name: 'biflow_direction', compileRule: decNumRule},
240: {name: 'ethernetHeaderLength', compileRule: decNumRule},
241: {name: 'ethernetPayloadLength', compileRule: decNumRule},
242: {name: 'ethernetTotalLength', compileRule: decNumRule},
243: {name: 'dot1qVlanId', compileRule: decNumRule},
244: {name: 'dot1qPriority', compileRule: decNumRule},
245: {name: 'dot1qCustomerVlanId', compileRule: decNumRule},
246: {name: 'dot1qCustomerPriority', compileRule: decNumRule},
247: {name: 'metroEvcId', compileRule: decStringRule},
248: {name: 'metroEvcType', compileRule: decNumRule},
249: {name: 'pseudoWireId', compileRule: decNumRule},
250: {name: 'pseudoWireType', compileRule: decNumRule},
251: {name: 'pseudoWireControlWord', compileRule: decNumRule},
252: {name: 'ingressPhysicalInterface', compileRule: decNumRule},
253: {name: 'egressPhysicalInterface', compileRule: decNumRule},
254: {name: 'postDot1qVlanId', compileRule: decNumRule},
255: {name: 'postDot1qCustomerVlanId', compileRule: decNumRule},
256: {name: 'ethernetType', compileRule: decNumRule},
257: {name: 'postIpPrecedence', compileRule: decNumRule},
258: {name: 'collectionTimeMilliseconds', compileRule: decTsMs},
259: {name: 'exportSctpStreamId', compileRule: decNumRule},
260: {name: 'maxExportSeconds', compileRule: decTimestamp},
261: {name: 'maxFlowEndSeconds', compileRule: decTimestamp},
262: {name: 'messageMD5Checksum', compileRule: decMacRule},
263: {name: 'messageScope', compileRule: decNumRule},
264: {name: 'minExportSeconds', compileRule: decTimestamp},
265: {name: 'minFlowStartSeconds', compileRule: decTimestamp},
266: {name: 'opaqueOctets', compileRule: decMacRule},
267: {name: 'sessionScope', compileRule: decNumRule},
268: {name: 'maxFlowEndMicroseconds', compileRule: decTsMcs},
269: {name: 'maxFlowEndMilliseconds', compileRule: decTsMs},
270: {name: 'maxFlowEndNanoseconds', compileRule: decTsNs},
271: {name: 'minFlowStartMicroseconds', compileRule: decTsMcs},
272: {name: 'minFlowStartMilliseconds', compileRule: decTsMs},
273: {name: 'minFlowStartNanoseconds', compileRule: decTsNs},
274: {name: 'collectorCertificate', compileRule: decMacRule},
275: {name: 'exporterCertificate', compileRule: decMacRule},
276: {name: 'dataRecordsReliability', compileRule: decNumRule},
277: {name: 'observationPointType', compileRule: decNumRule},
278: {name: 'connectionCountNew', compileRule: decNumRule},
279: {name: 'connectionSumDuration', compileRule: decNumRule},
280: {name: 'conn_tx_id',compileRule: decNumRule},
//
281: {name: 'postNATSourceIPv6Address',compileRule: decIpv6Rule},
282: {name: 'postNATDestinationIPv6Address',compileRule: decIpv6Rule},
283: {name: 'natPoolId',compileRule: decNumRule},
284: {name: 'natPoolName',compileRule: decStringRule},
285: {name: 'anonymizationFlags',compileRule: decNumRule},
286: {name: 'anonymizationTechnique',compileRule: decNumRule},
287: {name: 'informationElementIndex',compileRule: decNumRule},
288: {name: 'p2pTechnology',compileRule: decStringRule},
289: {name: 'tunnelTechnology',compileRule: decStringRule},
290: {name: 'encryptedTechnology',compileRule: decStringRule},
// 291: {name: 'basicList',compileRule: decNumRule}, // List type, not yet supported
// 292: {name: 'subTemplateList',compileRule: decNumRule},
// 293: {name: 'subTemplateMultiList',compileRule: decNumRule},
294: {name: 'bgpValidityState',compileRule: decNumRule},
295: {name: 'IPSecSPI',compileRule: decNumRule},
296: {name: 'greKey',compileRule: decNumRule},
297: {name: 'natType',compileRule: decNumRule},
298: {name: 'initiatorPackets',compileRule: decNumRule},
299: {name: 'responderPackets',compileRule: decNumRule},
300: {name: 'observationDomainName',compileRule: decStringRule},
301: {name: 'selectionSequenceId',compileRule: decNumRule},
302: {name: 'selectorId',compileRule: decNumRule},
303: {name: 'informationElementId',compileRule: decNumRule},
304: {name: 'selectorAlgorithm',compileRule: decNumRule},
305: {name: 'samplingPacketInterval',compileRule: decNumRule},
306: {name: 'samplingPacketSpace',compileRule: decNumRule},
307: {name: 'samplingTimeInterval',compileRule: decNumRule},
308: {name: 'samplingTimeSpace',compileRule: decNumRule},
309: {name: 'samplingSize',compileRule: decNumRule},
310: {name: 'samplingPopulation',compileRule: decNumRule},
// 311: {name: 'samplingProbability',compileRule: decNumRule}, // Float type has to be introduced
312: {name: 'dataLinkFrameSize',compileRule: decNumRule},
313: {name: 'ipHeaderPacketSection',compileRule: decMacRule},
314: {name: 'ipPayloadPacketSection',compileRule: decMacRule},
315: {name: 'dataLinkFrameSection',compileRule: decMacRule},
316: {name: 'mplsLabelStackSection',compileRule: decMacRule},
317: {name: 'mplsPayloadPacketSection',compileRule: decMacRule},
318: {name: 'selectorIdTotalPktsObserved',compileRule: decNumRule},
319: {name: 'selectorIdTotalPktsSelected',compileRule: decNumRule},
// 320: {name: 'absoluteError',compileRule: decNumRule}, // Float type
// 321: {name: 'relativeError',compileRule: decNumRule}, // Float type
322: {name: 'observationTimeSeconds',compileRule: decTimestamp},
323: {name: 'observationTimeMilliseconds',compileRule: decTsMs},
324: {name: 'observationTimeMicroseconds',compileRule: decTsMcs},
325: {name: 'observationTimeNanoseconds',compileRule: decTsNs},
326: {name: 'digestHashValue',compileRule: decNumRule},
327: {name: 'hashIPPayloadOffset',compileRule: decNumRule},
328: {name: 'hashIPPayloadSize',compileRule: decNumRule},
329: {name: 'hashOutputRangeMin',compileRule: decNumRule},
330: {name: 'hashOutputRangeMax',compileRule: decNumRule},
331: {name: 'hashSelectedRangeMin',compileRule: decNumRule},
332: {name: 'hashSelectedRangeMax',compileRule: decNumRule},
333: {name: 'hashDigestOutput',compileRule: decNumRule},
334: {name: 'hashInitialiserValue',compileRule: decNumRule},
335: {name: 'selectorName',compileRule: decStringRule},
// 336: {name: 'upperCILimit',compileRule: decNumRule}, // Float type
// 337: {name: 'lowerCILimit',compileRule: decNumRule}, // Float
// 338: {name: 'confidenceLevel',compileRule: decNumRule}, // Float
339: {name: 'informationElementDataType',compileRule: decNumRule},
340: {name: 'informationElementDescription',compileRule: decStringRule},
341: {name: 'informationElementName',compileRule: decStringRule},
342: {name: 'informationElementRangeBegin',compileRule: decNumRule},
343: {name: 'informationElementRangeEnd',compileRule: decNumRule},
344: {name: 'informationElementSemantics',compileRule: decNumRule},
345: {name: 'informationElementUnits',compileRule: decNumRule},
346: {name: 'privateEnterpriseNumber',compileRule: decNumRule},
347: {name: 'virtualStationInterfaceId',compileRule: decMacRule},
348: {name: 'virtualStationInterfaceName',compileRule: decStringRule},
349: {name: 'virtualStationUUID',compileRule: decMacRule},
350: {name: 'virtualStationName',compileRule: decStringRule},
351: {name: 'layer2SegmentId',compileRule: decNumRule},
352: {name: 'layer2OctetDeltaCount',compileRule: decNumRule},
353: {name: 'layer2OctetTotalCount',compileRule: decNumRule},
354: {name: 'ingressUnicastPacketTotalCount',compileRule: decNumRule},
355: {name: 'ingressMulticastPacketTotalCount',compileRule: decNumRule},
356: {name: 'ingressBroadcastPacketTotalCount',compileRule: decNumRule},
357: {name: 'egressUnicastPacketTotalCount',compileRule: decNumRule},
358: {name: 'egressBroadcastPacketTotalCount',compileRule: decNumRule},
359: {name: 'monitoringIntervalStartMilliSeconds',compileRule: decTsMs},
360: {name: 'monitoringIntervalEndMilliSeconds',compileRule: decTsMs},
361: {name: 'portRangeStart',compileRule: decNumRule},
362: {name: 'portRangeEnd',compileRule: decNumRule},
363: {name: 'portRangeStepSize',compileRule: decNumRule},
364: {name: 'portRangeNumPorts',compileRule: decNumRule},
365: {name: 'staMacAddress',compileRule: decMacRule},
366: {name: 'staIPv4Address',compileRule: decIpv4Rule},
367: {name: 'wtpMacAddress',compileRule: decMacRule},
368: {name: 'ingressInterfaceType',compileRule: decNumRule},
369: {name: 'egressInterfaceType',compileRule: decNumRule},
370: {name: 'rtpSequenceNumber',compileRule: decNumRule},
371: {name: 'userName',compileRule: decStringRule},
372: {name: 'applicationCategoryName',compileRule: decStringRule},
373: {name: 'applicationSubCategoryName',compileRule: decStringRule},
374: {name: 'applicationGroupName',compileRule: decStringRule},
375: {name: 'originalFlowsPresent',compileRule: decNumRule},
376: {name: 'originalFlowsInitiated',compileRule: decNumRule},
377: {name: 'originalFlowsCompleted',compileRule: decNumRule},
378: {name: 'distinctCountOfSourceIPAddress',compileRule: decNumRule},
379: {name: 'distinctCountOfDestinationIPAddress',compileRule: decNumRule},
380: {name: 'distinctCountOfSourceIPv4Address',compileRule: decNumRule},
381: {name: 'distinctCountOfDestinationIPv4Address',compileRule: decNumRule},
382: {name: 'distinctCountOfSourceIPv6Address',compileRule: decNumRule},
383: {name: 'distinctCountOfDestinationIPv6Address',compileRule: decNumRule},
384: {name: 'valueDistributionMethod',compileRule: decNumRule},
385: {name: 'rfc3550JitterMilliseconds',compileRule: decNumRule},
386: {name: 'rfc3550JitterMicroseconds',compileRule: decNumRule},
387: {name: 'rfc3550JitterNanoseconds',compileRule: decNumRule},
388: {name: 'dot1qDEI',compileRule: decNumRule},
389: {name: 'dot1qCustomerDEI',compileRule: decNumRule},
390: {name: 'flowSelectorAlgorithm',compileRule: decNumRule},
391: {name: 'flowSelectedOctetDeltaCount',compileRule: decNumRule},
392: {name: 'flowSelectedPacketDeltaCount',compileRule: decNumRule},
393: {name: 'flowSelectedFlowDeltaCount',compileRule: decNumRule},
394: {name: 'selectorIDTotalFlowsObserved',compileRule: decNumRule},
395: {name: 'selectorIDTotalFlowsSelected',compileRule: decNumRule},
396: {name: 'samplingFlowInterval',compileRule: decNumRule},
397: {name: 'samplingFlowSpacing',compileRule: decNumRule},
398: {name: 'flowSamplingTimeInterval',compileRule: decNumRule},
399: {name: 'flowSamplingTimeSpacing',compileRule: decNumRule},
400: {name: 'hashFlowDomain',compileRule: decNumRule},
401: {name: 'transportOctetDeltaCount',compileRule: decNumRule},
402: {name: 'transportPacketDeltaCount',compileRule: decNumRule},
403: {name: 'originalExporterIPv4Address',compileRule: decIpv4Rule},
404: {name: 'originalExporterIPv6Address',compileRule: decIpv6Rule},
405: {name: 'originalObservationDomainId',compileRule: decNumRule},
406: {name: 'intermediateProcessId',compileRule: decNumRule},
407: {name: 'ignoredDataRecordTotalCount',compileRule: decNumRule},
408: {name: 'dataLinkFrameType',compileRule: decNumRule},
409: {name: 'sectionOffset',compileRule: decNumRule},
410: {name: 'sectionExportedOctets',compileRule: decNumRule},
411: {name: 'dot1qServiceInstanceTag',compileRule: decMacRule},
412: {name: 'dot1qServiceInstanceId',compileRule: decNumRule},
413: {name: 'dot1qServiceInstancePriority',compileRule: decNumRule},
414: {name: 'dot1qCustomerSourceMacAddress',compileRule: decMacRule},
415: {name: 'dot1qCustomerDestinationMacAddress',compileRule: decMacRule},
417: {name: 'postLayer2OctetDeltaCount',compileRule: decNumRule},
418: {name: 'postMCastLayer2OctetDeltaCount',compileRule: decNumRule},
420: {name: 'postLayer2OctetTotalCount',compileRule: decNumRule},
421: {name: 'postMCastLayer2OctetTotalCount',compileRule: decNumRule},
422: {name: 'minimumLayer2TotalLength',compileRule: decNumRule},
423: {name: 'maximumLayer2TotalLength',compileRule: decNumRule},
424: {name: 'droppedLayer2OctetDeltaCount',compileRule: decNumRule},
425: {name: 'droppedLayer2OctetTotalCount',compileRule: decNumRule},
426: {name: 'ignoredLayer2OctetTotalCount',compileRule: decNumRule},
427: {name: 'notSentLayer2OctetTotalCount',compileRule: decNumRule},
428: {name: 'layer2OctetDeltaSumOfSquares',compileRule: decNumRule},
429: {name: 'layer2OctetTotalSumOfSquares',compileRule: decNumRule},
430: {name: 'layer2FrameDeltaCount',compileRule: decNumRule},
431: {name: 'layer2FrameTotalCount',compileRule: decNumRule},
432: {name: 'pseudoWireDestinationIPv4Address',compileRule: decIpv4Rule},
433: {name: 'ignoredLayer2FrameTotalCount',compileRule: decNumRule},
434: {name: 'mibObjectValueInteger',compileRule: decNumRule},
435: {name: 'mibObjectValueOctetString',compileRule: decMacRule},
436: {name: 'mibObjectValueOID',compileRule: decMacRule},
437: {name: 'mibObjectValueBits',compileRule: decMacRule},
438: {name: 'mibObjectValueIPAddress',compileRule: decIpv4Rule},
439: {name: 'mibObjectValueCounter',compileRule: decNumRule},
440: {name: 'mibObjectValueGauge',compileRule: decNumRule},
441: {name: 'mibObjectValueTimeTicks',compileRule: decNumRule},
442: {name: 'mibObjectValueUnsigned',compileRule: decNumRule},
// 443: {name: 'mibObjectValueTable',compileRule: subTemplateList},
// 444: {name: 'mibObjectValueRow',compileRule: subTemplateList},
445: {name: 'mibObjectIdentifier',compileRule: decMacRule},
446: {name: 'mibSubIdentifier',compileRule: decNumRule},
447: {name: 'mibIndexIndicator',compileRule: decNumRule},
448: {name: 'mibCaptureTimeSemantics',compileRule: decNumRule},
449: {name: 'mibContextEngineID',compileRule: decMacRule},
450: {name: 'mibContextName',compileRule: decStringRule},
451: {name: 'mibObjectName',compileRule: decStringRule},
452: {name: 'mibObjectDescription',compileRule: decStringRule},
453: {name: 'mibObjectSyntax',compileRule: decStringRule},
454: {name: 'mibModuleName',compileRule: decStringRule},
455: {name: 'mobileIMSI',compileRule: decStringRule},
456: {name: 'mobileMSISDN',compileRule: decStringRule},
457: {name: 'httpStatusCode',compileRule: decNumRule},
458: {name: 'sourceTransportPortsLimit',compileRule: decNumRule},
459: {name: 'httpRequestMethod',compileRule: decStringRule},
460: {name: 'httpRequestHost',compileRule: decStringRule},
461: {name: 'httpRequestTarget',compileRule: decStringRule},
462: {name: 'httpMessageVersion',compileRule: decStringRule},
463: {name: 'natInstanceID',compileRule: decNumRule},
464: {name: 'internalAddressRealm',compileRule: decMacRule},
465: {name: 'externalAddressRealm',compileRule: decMacRule},
466: {name: 'natQuotaExceededEvent',compileRule: decNumRule},
467: {name: 'natThresholdEvent',compileRule: decNumRule},
468: {name: 'httpUserAgent',compileRule: decStringRule},
469: {name: 'httpContentType',compileRule: decStringRule},
470: {name: 'httpReasonPhrase',compileRule: decStringRule},
471: {name: 'maxSessionEntries',compileRule: decNumRule},
472: {name: 'maxBIBEntries',compileRule: decNumRule},
473: {name: 'maxEntriesPerUser',compileRule: decNumRule},
474: {name: 'maxSubscribers',compileRule: decNumRule},
475: {name: 'maxFragmentsPendingReassembly',compileRule: decNumRule},
476: {name: 'addressPoolHighThreshold',compileRule: decNumRule},
477: {name: 'addressPoolLowThreshold',compileRule: decNumRule},
478: {name: 'addressPortMappingHighThreshold',compileRule: decNumRule},
479: {name: 'addressPortMappingLowThreshold',compileRule: decNumRule},
480: {name: 'addressPortMappingPerUserHighThreshold',compileRule: decNumRule},
481: {name: 'globalAddressMappingHighThreshold',compileRule: decNumRule},
482: {name: 'vpnIdentifier',compileRule: decMacRule},
483: {name: 'bgpCommunity',compileRule: decNumRule},
// 484: {name: 'bgpSourceCommunityList',compileRule: basicList},
// 485: {name: 'bgpDestinationCommunityList',compileRule: basicList},
486: {name: 'bgpExtendedCommunity',compileRule: decMacRule},
// 487: {name: 'bgpSourceExtendedCommunityList',compileRule: basicList},
// 488: {name: 'bgpDestinationExtendedCommunityList',compileRule: basicList},
489: {name: 'bgpLargeCommunity',compileRule: decMacRule},
// 490: {name: 'bgpSourceLargeCommunityList',compileRule: basicList},
// 491: {name: 'bgpDestinationLargeCommunityList',compileRule: basicList},
33000: {name: 'inputACL', compileRule: decMacRule},
33001: {name: 'outputACL', compileRule: decMacRule},
33002: {name: 'firewallExtendedEvent', compileRule: decNumRule},
40000: {name: 'username', compileRule: decAsciiStringRule}
};
var nfScope = {
1: { name: 'scope_system', compileRule: decMacRule },
2: { name: 'scope_interface', compileRule: decStringRule },
3: { name: 'scope_linecard', compileRule: decNumRule },
4: { name: 'scope_netflow_cache', compileRule: decNumRule },
5: { name: 'scope_template', compileRule: decStringRule }
};
module.exports = {
nfTypes: nfTypes,
nfScope: nfScope
};