logstash-codec-netflow 3.1.4 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/CONTRIBUTORS +1 -0
- data/lib/logstash/codecs/netflow.rb +112 -87
- data/lib/logstash/codecs/netflow/ipfix.yaml +664 -0
- data/lib/logstash/codecs/netflow/util.rb +44 -0
- data/logstash-codec-netflow.gemspec +1 -1
- data/spec/codecs/ipfix_test_netscaler_data.dat +0 -0
- data/spec/codecs/ipfix_test_netscaler_tpl.dat +0 -0
- data/spec/codecs/netflow_spec.rb +303 -0
- metadata +42 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c0a3f206c7fe1f106fda91bd4d6ae4859b431cc
|
4
|
+
data.tar.gz: fd0a8240b8b1ea48b5c3c6c200eed186ee9774ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d593484718168a9b28a07616eb1a13b8cf4e8911caec611113af342f4b926d184dc935dddc6bf62eab7ec91f14d2957f7ece359000f45247766eb0894ea71a2
|
7
|
+
data.tar.gz: 290c29bd48ac4248575a8cdcbfec95e11f6a19c10264b4939bcda4cc02f147982dbf5ec82b9d3d92ae3aa235dfe88e4316707f8dbc4731dd41ad2f2981f27ed7
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## 3.2.0
|
2
|
+
|
3
|
+
- Add Netflow v9/v10 template caching, configurable TTL
|
4
|
+
- Add option for including flowset_id for Netflow v10
|
5
|
+
- Refactor/simplify Netflow v9/v10 templates processing
|
6
|
+
- Add variable length field support
|
7
|
+
- Add OctetArray support
|
8
|
+
- Add Citrix Netscaler (IPFIX) support
|
9
|
+
- Add spec tests and anonymized test data for all of the above
|
10
|
+
|
1
11
|
## 3.1.4
|
2
12
|
|
3
13
|
- Added support for MPLS labels
|
data/CONTRIBUTORS
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
require "logstash/codecs/base"
|
3
3
|
require "logstash/namespace"
|
4
4
|
require "logstash/timestamp"
|
5
|
+
require "logstash/json"
|
5
6
|
|
6
7
|
# The "netflow" codec is used for decoding Netflow v5/v9/v10 (IPFIX) flows.
|
7
8
|
#
|
@@ -22,6 +23,7 @@ require "logstash/timestamp"
|
|
22
23
|
# |OpenBSD pflow | y | n | y | http://man.openbsd.org/OpenBSD-current/man4/pflow.4
|
23
24
|
# |Mikrotik 6.35.4 | y | | n | http://wiki.mikrotik.com/wiki/Manual:IP/Traffic_Flow
|
24
25
|
# |Ubiquiti Edgerouter X | | y | | With MPLS labels
|
26
|
+
# |Citrix Netscaler | | | y | Still some unknown fields, labeled netscalerUnknown<id>
|
25
27
|
# |===========================================================================================
|
26
28
|
#
|
27
29
|
# ==== Usage
|
@@ -63,12 +65,23 @@ require "logstash/timestamp"
|
|
63
65
|
class LogStash::Codecs::Netflow < LogStash::Codecs::Base
|
64
66
|
config_name "netflow"
|
65
67
|
|
66
|
-
# Netflow v9 template cache TTL (minutes)
|
68
|
+
# Netflow v9/v10 template cache TTL (minutes)
|
67
69
|
config :cache_ttl, :validate => :number, :default => 4000
|
68
70
|
|
71
|
+
# Where to save the template cache
|
72
|
+
# This helps speed up processing when restarting logstash
|
73
|
+
# (So you don't have to await the arrival of templates)
|
74
|
+
# cache will save as path/netflow_templates.cache and/or path/ipfix_templates.cache
|
75
|
+
config :cache_save_path, :validate => :path
|
76
|
+
|
69
77
|
# Specify into what field you want the Netflow data.
|
70
78
|
config :target, :validate => :string, :default => "netflow"
|
71
79
|
|
80
|
+
# Only makes sense for ipfix, v9 already includes this
|
81
|
+
# Setting to true will include the flowset_id in events
|
82
|
+
# Allows you to work with sequences, for instance with the aggregate filter
|
83
|
+
config :include_flowset_id, :validate => :boolean, :default => false
|
84
|
+
|
72
85
|
# Specify which Netflow versions you will accept.
|
73
86
|
config :versions, :validate => :array, :default => [5, 9, 10]
|
74
87
|
|
@@ -137,6 +150,26 @@ class LogStash::Codecs::Netflow < LogStash::Codecs::Base
|
|
137
150
|
# Path to default IPFIX field definitions
|
138
151
|
filename = ::File.expand_path('netflow/ipfix.yaml', ::File.dirname(__FILE__))
|
139
152
|
@ipfix_fields = load_definitions(filename, @ipfix_definitions)
|
153
|
+
|
154
|
+
if @cache_save_path
|
155
|
+
if @versions.include?(9)
|
156
|
+
if File.exists?("#{@cache_save_path}/netflow_templates.cache")
|
157
|
+
@netflow_templates_cache = load_templates_cache("#{@cache_save_path}/netflow_templates.cache")
|
158
|
+
@netflow_templates_cache.each{ |key, fields| @netflow_templates[key, @cache_ttl] = BinData::Struct.new(:endian => :big, :fields => fields) }
|
159
|
+
else
|
160
|
+
@netflow_templates_cache = {}
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
if @versions.include?(10)
|
165
|
+
if File.exists?("#{@cache_save_path}/ipfix_templates.cache")
|
166
|
+
@ipfix_templates_cache = load_templates_cache("#{@cache_save_path}/ipfix_templates.cache")
|
167
|
+
@ipfix_templates_cache.each{ |key, fields| @ipfix_templates[key, @cache_ttl] = BinData::Struct.new(:endian => :big, :fields => fields) }
|
168
|
+
else
|
169
|
+
@ipfix_templates_cache = {}
|
170
|
+
end
|
171
|
+
end
|
172
|
+
end
|
140
173
|
end # def register
|
141
174
|
|
142
175
|
def decode(payload, metadata = nil, &block)
|
@@ -216,40 +249,27 @@ class LogStash::Codecs::Netflow < LogStash::Codecs::Base
|
|
216
249
|
events = []
|
217
250
|
|
218
251
|
case record.flowset_id
|
219
|
-
when 0
|
252
|
+
when 0..1
|
220
253
|
# Template flowset
|
221
254
|
record.flowset_data.templates.each do |template|
|
222
255
|
catch (:field) do
|
223
256
|
fields = []
|
224
|
-
template
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
if metadata != nil
|
232
|
-
key = "#{flowset.source_id}|#{template.template_id}|#{metadata["host"]}|#{metadata["port"]}"
|
257
|
+
# Template flowset (0) or Options template flowset (1) ?
|
258
|
+
if record.flowset_id == 0
|
259
|
+
template.record_fields.each do |field|
|
260
|
+
entry = netflow_field_for(field.field_type, field.field_length)
|
261
|
+
throw :field unless entry
|
262
|
+
fields += entry
|
263
|
+
end
|
233
264
|
else
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
# Options template flowset
|
243
|
-
record.flowset_data.templates.each do |template|
|
244
|
-
catch (:field) do
|
245
|
-
fields = []
|
246
|
-
template.scope_fields.each do |field|
|
247
|
-
fields << [uint_field(0, field.field_length), NETFLOW9_SCOPES[field.field_type]]
|
248
|
-
end
|
249
|
-
template.option_fields.each do |field|
|
250
|
-
entry = netflow_field_for(field.field_type, field.field_length)
|
251
|
-
throw :field unless entry
|
252
|
-
fields += entry
|
265
|
+
template.scope_fields.each do |field|
|
266
|
+
fields << [uint_field(0, field.field_length), NETFLOW9_SCOPES[field.field_type]]
|
267
|
+
end
|
268
|
+
template.option_fields.each do |field|
|
269
|
+
entry = netflow_field_for(field.field_type, field.field_length)
|
270
|
+
throw :field unless entry
|
271
|
+
fields += entry
|
272
|
+
end
|
253
273
|
end
|
254
274
|
# We get this far, we have a list of fields
|
255
275
|
#key = "#{flowset.source_id}|#{event["source"]}|#{template.template_id}"
|
@@ -261,6 +281,10 @@ class LogStash::Codecs::Netflow < LogStash::Codecs::Base
|
|
261
281
|
@netflow_templates[key, @cache_ttl] = BinData::Struct.new(:endian => :big, :fields => fields)
|
262
282
|
# Purge any expired templates
|
263
283
|
@netflow_templates.cleanup!
|
284
|
+
if @cache_save_path
|
285
|
+
@netflow_templates_cache[key] = fields
|
286
|
+
save_templates_cache(@netflow_templates_cache, "#{@cache_save_path}/netflow_templates.cache")
|
287
|
+
end
|
264
288
|
end
|
265
289
|
end
|
266
290
|
when 256..65535
|
@@ -332,31 +356,17 @@ class LogStash::Codecs::Netflow < LogStash::Codecs::Base
|
|
332
356
|
events = []
|
333
357
|
|
334
358
|
case record.flowset_id
|
335
|
-
when 2
|
336
|
-
# Template flowset
|
359
|
+
when 2..3
|
337
360
|
record.flowset_data.templates.each do |template|
|
338
361
|
catch (:field) do
|
339
362
|
fields = []
|
340
|
-
template
|
363
|
+
# Template flowset (2) or Options template flowset (3) ?
|
364
|
+
template_fields = (record.flowset_id == 2) ? template.record_fields : (template.scope_fields.to_ary + template.option_fields.to_ary)
|
365
|
+
template_fields.each do |field|
|
341
366
|
field_type = field.field_type
|
342
367
|
field_length = field.field_length
|
343
368
|
enterprise_id = field.enterprise ? field.enterprise_id : 0
|
344
369
|
|
345
|
-
if field.field_length == 0xffff
|
346
|
-
# FIXME
|
347
|
-
@logger.warn("Cowardly refusing to deal with variable length encoded field", :type => field_type, :enterprise => enterprise_id)
|
348
|
-
throw :field
|
349
|
-
end
|
350
|
-
|
351
|
-
if enterprise_id == 0
|
352
|
-
case field_type
|
353
|
-
when 291, 292, 293
|
354
|
-
# FIXME
|
355
|
-
@logger.warn("Cowardly refusing to deal with complex data types", :type => field_type, :enterprise => enterprise_id)
|
356
|
-
throw :field
|
357
|
-
end
|
358
|
-
end
|
359
|
-
|
360
370
|
entry = ipfix_field_for(field_type, enterprise_id, field.field_length)
|
361
371
|
throw :field unless entry
|
362
372
|
fields += entry
|
@@ -366,42 +376,10 @@ class LogStash::Codecs::Netflow < LogStash::Codecs::Base
|
|
366
376
|
@ipfix_templates[key, @cache_ttl] = BinData::Struct.new(:endian => :big, :fields => fields)
|
367
377
|
# Purge any expired templates
|
368
378
|
@ipfix_templates.cleanup!
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
# Options template flowset
|
373
|
-
record.flowset_data.templates.each do |template|
|
374
|
-
catch (:field) do
|
375
|
-
fields = []
|
376
|
-
(template.scope_fields.to_ary + template.option_fields.to_ary).each do |field|
|
377
|
-
field_type = field.field_type
|
378
|
-
field_length = field.field_length
|
379
|
-
enterprise_id = field.enterprise ? field.enterprise_id : 0
|
380
|
-
|
381
|
-
if field.field_length == 0xffff
|
382
|
-
# FIXME
|
383
|
-
@logger.warn("Cowardly refusing to deal with variable length encoded field", :type => field_type, :enterprise => enterprise_id)
|
384
|
-
throw :field
|
385
|
-
end
|
386
|
-
|
387
|
-
if enterprise_id == 0
|
388
|
-
case field_type
|
389
|
-
when 291, 292, 293
|
390
|
-
# FIXME
|
391
|
-
@logger.warn("Cowardly refusing to deal with complex data types", :type => field_type, :enterprise => enterprise_id)
|
392
|
-
throw :field
|
393
|
-
end
|
394
|
-
end
|
395
|
-
|
396
|
-
entry = ipfix_field_for(field_type, enterprise_id, field.field_length)
|
397
|
-
throw :field unless entry
|
398
|
-
fields += entry
|
379
|
+
if @cache_save_path
|
380
|
+
@ipfix_templates_cache[key] = fields
|
381
|
+
save_templates_cache(@ipfix_templates_cache, "#{@cache_save_path}/ipfix_templates.cache")
|
399
382
|
end
|
400
|
-
# FIXME Source IP address required in key
|
401
|
-
key = "#{flowset.observation_domain_id}|#{template.template_id}"
|
402
|
-
@ipfix_templates[key, @cache_ttl] = BinData::Struct.new(:endian => :big, :fields => fields)
|
403
|
-
# Purge any expired templates
|
404
|
-
@ipfix_templates.cleanup!
|
405
383
|
end
|
406
384
|
end
|
407
385
|
when 256..65535
|
@@ -427,6 +405,10 @@ class LogStash::Codecs::Netflow < LogStash::Codecs::Base
|
|
427
405
|
event[@target][f] = flowset[f].snapshot
|
428
406
|
end
|
429
407
|
|
408
|
+
if @include_flowset_id
|
409
|
+
event[@target][FLOWSET_ID] = record.flowset_id.snapshot
|
410
|
+
end
|
411
|
+
|
430
412
|
r.each_pair do |k, v|
|
431
413
|
case k.to_s
|
432
414
|
when /^flow(?:Start|End)Seconds$/
|
@@ -478,11 +460,51 @@ class LogStash::Codecs::Netflow < LogStash::Codecs::Base
|
|
478
460
|
fields
|
479
461
|
end
|
480
462
|
|
463
|
+
def load_templates_cache(file_path)
|
464
|
+
templates_cache = {}
|
465
|
+
begin
|
466
|
+
templates_cache = JSON.parse(File.read(file_path))
|
467
|
+
rescue Exception => e
|
468
|
+
raise "#{self.class.name}: templates cache file corrupt (#{file_path})"
|
469
|
+
end
|
470
|
+
|
471
|
+
templates_cache
|
472
|
+
end
|
473
|
+
|
474
|
+
def save_templates_cache(templates_cache, file_path)
|
475
|
+
begin
|
476
|
+
File.open(file_path, 'w') {|file| file.write templates_cache.to_json }
|
477
|
+
rescue Exception => e
|
478
|
+
raise "#{self.class.name}: saving templates cache file failed (#{file_path}) with error #{e}"
|
479
|
+
end
|
480
|
+
end
|
481
|
+
|
481
482
|
def uint_field(length, default)
|
482
483
|
# If length is 4, return :uint32, etc. and use default if length is 0
|
483
484
|
("uint" + (((length > 0) ? length : default) * 8).to_s).to_sym
|
484
485
|
end # def uint_field
|
485
486
|
|
487
|
+
def skip_field(field, type, length)
|
488
|
+
if length == 65535
|
489
|
+
field[0] = :VarSkip
|
490
|
+
else
|
491
|
+
field += [nil, {:length => length.to_i}]
|
492
|
+
end
|
493
|
+
|
494
|
+
field
|
495
|
+
end # def skip_field
|
496
|
+
|
497
|
+
def string_field(field, type, length)
|
498
|
+
if length == 65535
|
499
|
+
field[0] = :VarString
|
500
|
+
else
|
501
|
+
field[0] = :string
|
502
|
+
field += [{ :length => length.to_i, :trim_padding => true }]
|
503
|
+
end
|
504
|
+
|
505
|
+
field
|
506
|
+
end # def string_field
|
507
|
+
|
486
508
|
def netflow_field_for(type, length)
|
487
509
|
if @netflow_fields.include?(type)
|
488
510
|
field = @netflow_fields[type].clone
|
@@ -494,9 +516,9 @@ class LogStash::Codecs::Netflow < LogStash::Codecs::Base
|
|
494
516
|
# is dynamic
|
495
517
|
case field[0]
|
496
518
|
when :skip
|
497
|
-
field += [nil, {:length => length}]
|
519
|
+
field += [nil, {:length => length.to_i}]
|
498
520
|
when :string
|
499
|
-
field += [{:length => length, :trim_padding => true}]
|
521
|
+
field += [{:length => length.to_i, :trim_padding => true}]
|
500
522
|
end
|
501
523
|
|
502
524
|
@logger.debug? and @logger.debug("Definition complete", :field => field)
|
@@ -528,9 +550,12 @@ class LogStash::Codecs::Netflow < LogStash::Codecs::Base
|
|
528
550
|
if field.is_a?(Array)
|
529
551
|
case field[0]
|
530
552
|
when :skip
|
531
|
-
field
|
553
|
+
field = skip_field(field, type, length.to_i)
|
532
554
|
when :string
|
533
|
-
field
|
555
|
+
field = string_field(field, type, length.to_i)
|
556
|
+
when :octetarray
|
557
|
+
field[0] = :OctetArray
|
558
|
+
field += [{:initial_length => length.to_i}]
|
534
559
|
when :uint64
|
535
560
|
field[0] = uint_field(length, 8)
|
536
561
|
when :uint32
|
@@ -1202,6 +1202,670 @@
|
|
1202
1202
|
433:
|
1203
1203
|
- :uint64
|
1204
1204
|
- :ignoredLayer2FrameTotalCount
|
1205
|
+
5951:
|
1206
|
+
128:
|
1207
|
+
- :uint32
|
1208
|
+
- :netscalerRoundTripTime
|
1209
|
+
129:
|
1210
|
+
- :uint32
|
1211
|
+
- :netscalerTransactionId
|
1212
|
+
130:
|
1213
|
+
- :string
|
1214
|
+
- :netscalerHttpReqUrl
|
1215
|
+
131:
|
1216
|
+
- :string
|
1217
|
+
- :netscalerHttpReqCookie
|
1218
|
+
132:
|
1219
|
+
- :uint64
|
1220
|
+
- :netscalerFlowFlags
|
1221
|
+
133:
|
1222
|
+
- :uint32
|
1223
|
+
- :netscalerConnectionId
|
1224
|
+
134:
|
1225
|
+
- :uint8
|
1226
|
+
- :netscalerSyslogPriority
|
1227
|
+
135:
|
1228
|
+
- :string
|
1229
|
+
- :netscalerSyslogMessage
|
1230
|
+
136:
|
1231
|
+
- :uint64
|
1232
|
+
- :netscalerSyslogTimestamp
|
1233
|
+
140:
|
1234
|
+
- :string
|
1235
|
+
- :netscalerHttpReqReferer
|
1236
|
+
141:
|
1237
|
+
- :string
|
1238
|
+
- :netscalerHttpReqMethod
|
1239
|
+
142:
|
1240
|
+
- :string
|
1241
|
+
- :netscalerHttpReqHost
|
1242
|
+
143:
|
1243
|
+
- :string
|
1244
|
+
- :netscalerHttpReqUserAgent
|
1245
|
+
144:
|
1246
|
+
- :uint16
|
1247
|
+
- :netscalerHttpRspStatus
|
1248
|
+
145:
|
1249
|
+
- :uint64
|
1250
|
+
- :netscalerHttpRspLen
|
1251
|
+
146:
|
1252
|
+
- :uint64
|
1253
|
+
- :netscalerServerTTFB
|
1254
|
+
147:
|
1255
|
+
- :uint64
|
1256
|
+
- :netscalerServerTTLB
|
1257
|
+
150:
|
1258
|
+
- :uint32
|
1259
|
+
- :netscalerAppNameIncarnationNumber
|
1260
|
+
151:
|
1261
|
+
- :uint32
|
1262
|
+
- :netscalerAppNameAppId
|
1263
|
+
152:
|
1264
|
+
- :string
|
1265
|
+
- :netscalerAppName
|
1266
|
+
153:
|
1267
|
+
- :uint64
|
1268
|
+
- :netscalerHttpReqRcvFB
|
1269
|
+
156:
|
1270
|
+
- :uint64
|
1271
|
+
- :netscalerHttpReqForwFB
|
1272
|
+
157:
|
1273
|
+
- :uint64
|
1274
|
+
- :netscalerHttpResRcvFB
|
1275
|
+
158:
|
1276
|
+
- :uint64
|
1277
|
+
- :netscalerHttpResForwFB
|
1278
|
+
159:
|
1279
|
+
- :uint64
|
1280
|
+
- :netscalerHttpReqRcvLB
|
1281
|
+
160:
|
1282
|
+
- :uint64
|
1283
|
+
- :netscalerHttpReqForwLB
|
1284
|
+
161:
|
1285
|
+
- :uint32
|
1286
|
+
- :netscalerMainPageId
|
1287
|
+
162:
|
1288
|
+
- :uint32
|
1289
|
+
- :netscalerMainPageCoreId
|
1290
|
+
163:
|
1291
|
+
- :string
|
1292
|
+
- :netscalerHttpClientInteractionStartTime
|
1293
|
+
164:
|
1294
|
+
- :string
|
1295
|
+
- :netscalerHttpClientRenderEndTime
|
1296
|
+
165:
|
1297
|
+
- :string
|
1298
|
+
- :netscalerHttpClientRenderStartTime
|
1299
|
+
167:
|
1300
|
+
- :string
|
1301
|
+
- :netscalerAppTemplateName
|
1302
|
+
168:
|
1303
|
+
- :string
|
1304
|
+
- :netscalerHttpClientInteractionEndTime
|
1305
|
+
169:
|
1306
|
+
- :uint64
|
1307
|
+
- :netscalerHttpResRcvLB
|
1308
|
+
170:
|
1309
|
+
- :uint64
|
1310
|
+
- :netscalerHttpResForwLB
|
1311
|
+
171:
|
1312
|
+
- :uint32
|
1313
|
+
- :netscalerAppUnitNameAppId
|
1314
|
+
172:
|
1315
|
+
- :uint32
|
1316
|
+
- :netscalerDbLoginFlags
|
1317
|
+
173:
|
1318
|
+
- :uint8
|
1319
|
+
- :netscalerDbReqType
|
1320
|
+
174:
|
1321
|
+
- :uint8
|
1322
|
+
- :netscalerDbProtocolName
|
1323
|
+
175:
|
1324
|
+
- :string
|
1325
|
+
- :netscalerDbUserName
|
1326
|
+
176:
|
1327
|
+
- :string
|
1328
|
+
- :netscalerDbDatabaseName
|
1329
|
+
177:
|
1330
|
+
- :string
|
1331
|
+
- :netscalerDbCltHostName
|
1332
|
+
178:
|
1333
|
+
- :string
|
1334
|
+
- :netscalerDbReqString
|
1335
|
+
179:
|
1336
|
+
- :string
|
1337
|
+
- :netscalerDbRespStatusString
|
1338
|
+
180:
|
1339
|
+
- :uint64
|
1340
|
+
- :netscalerDbRespStatus
|
1341
|
+
181:
|
1342
|
+
- :uint64
|
1343
|
+
- :netscalerDbRespLength
|
1344
|
+
182:
|
1345
|
+
- :uint32
|
1346
|
+
- :netscalerClientRTT
|
1347
|
+
183:
|
1348
|
+
- :string
|
1349
|
+
- :netscalerHttpContentType
|
1350
|
+
185:
|
1351
|
+
- :string
|
1352
|
+
- :netscalerHttpReqAuthorization
|
1353
|
+
186:
|
1354
|
+
- :string
|
1355
|
+
- :netscalerHttpReqVia
|
1356
|
+
187:
|
1357
|
+
- :string
|
1358
|
+
- :netscalerHttpResLocation
|
1359
|
+
188:
|
1360
|
+
- :string
|
1361
|
+
- :netscalerHttpResSetCookie
|
1362
|
+
189:
|
1363
|
+
- :string
|
1364
|
+
- :netscalerHttpResSetCookie2
|
1365
|
+
190:
|
1366
|
+
- :string
|
1367
|
+
- :netscalerHttpReqXForwardedFor
|
1368
|
+
192:
|
1369
|
+
- :octetarray
|
1370
|
+
- :netscalerConnectionChainID
|
1371
|
+
193:
|
1372
|
+
- :uint8
|
1373
|
+
- :netscalerConnectionChainHopCount
|
1374
|
+
200:
|
1375
|
+
- :octetarray
|
1376
|
+
- :netscalerICASessionGuid
|
1377
|
+
201:
|
1378
|
+
- :string
|
1379
|
+
- :netscaleIcaClientVersion
|
1380
|
+
202:
|
1381
|
+
- :uint16
|
1382
|
+
- :netscalerIcaClientType
|
1383
|
+
203:
|
1384
|
+
- :ip4_addr
|
1385
|
+
- :netscalerIcaClientIP
|
1386
|
+
204:
|
1387
|
+
- :string
|
1388
|
+
- :netscalerIcaClientHostName
|
1389
|
+
205:
|
1390
|
+
- :string
|
1391
|
+
- :netscalerAaaUsername
|
1392
|
+
207:
|
1393
|
+
- :string
|
1394
|
+
- :netscalerIcaDomainName
|
1395
|
+
208:
|
1396
|
+
- :uint16
|
1397
|
+
- :netscalerIcaClientLauncher
|
1398
|
+
209:
|
1399
|
+
- :uint32
|
1400
|
+
- :netscalerIcaSessionSetupTime
|
1401
|
+
210:
|
1402
|
+
- :string
|
1403
|
+
- :netscalerIcaServerName
|
1404
|
+
214:
|
1405
|
+
- :uint8
|
1406
|
+
- :netscalerIcaSessionReconnects
|
1407
|
+
215:
|
1408
|
+
- :uint32
|
1409
|
+
- :netscalerIcaRTT
|
1410
|
+
216:
|
1411
|
+
- :uint32
|
1412
|
+
- :netscalerIcaClientsideRXBytes
|
1413
|
+
217:
|
1414
|
+
- :uint32
|
1415
|
+
- :netscalerIcaClientsideTXBytes
|
1416
|
+
219:
|
1417
|
+
- :uint16
|
1418
|
+
- :netscalerIcaClientsidePacketsRetransmit
|
1419
|
+
220:
|
1420
|
+
- :uint16
|
1421
|
+
- :netscalerIcaServersidePacketsRetransmit
|
1422
|
+
221:
|
1423
|
+
- :uint32
|
1424
|
+
- :netscalerIcaClientsideRTT
|
1425
|
+
222:
|
1426
|
+
- :uint32
|
1427
|
+
- :netscalerIcaServersideRTT
|
1428
|
+
223:
|
1429
|
+
- :uint32
|
1430
|
+
- :netscalerIcaSessionUpdateBeginSec
|
1431
|
+
224:
|
1432
|
+
- :uint32
|
1433
|
+
- :netscalerIcaSessionUpdateEndSec
|
1434
|
+
225:
|
1435
|
+
- :uint32
|
1436
|
+
- :netscalerIcaChannelId1
|
1437
|
+
226:
|
1438
|
+
- :uint32
|
1439
|
+
- :netscalerIcaChannelId1Bytes
|
1440
|
+
227:
|
1441
|
+
- :uint32
|
1442
|
+
- :netscalerIcaChannelId2
|
1443
|
+
228:
|
1444
|
+
- :uint32
|
1445
|
+
- :netscalerIcaChannelId2Bytes
|
1446
|
+
229:
|
1447
|
+
- :uint32
|
1448
|
+
- :netscalerIcaChannelId3
|
1449
|
+
230:
|
1450
|
+
- :uint32
|
1451
|
+
- :netscalerIcaChannelId3Bytes
|
1452
|
+
231:
|
1453
|
+
- :uint32
|
1454
|
+
- :netscalerIcaChannelId4
|
1455
|
+
232:
|
1456
|
+
- :uint32
|
1457
|
+
- :netscalerIcaChannelId4Bytes
|
1458
|
+
233:
|
1459
|
+
- :uint32
|
1460
|
+
- :netscalerIcaChannelId5
|
1461
|
+
234:
|
1462
|
+
- :uint32
|
1463
|
+
- :netscalerIcaChannelId5Bytes
|
1464
|
+
235:
|
1465
|
+
- :uint16
|
1466
|
+
- :netscalerIcaConnectionPriority
|
1467
|
+
236:
|
1468
|
+
- :uint32
|
1469
|
+
- :netscalerApplicationStartupDuration
|
1470
|
+
237:
|
1471
|
+
- :uint16
|
1472
|
+
- :netscalerIcaLaunchMechanism
|
1473
|
+
238:
|
1474
|
+
- :string
|
1475
|
+
- :netscalerIcaApplicationName
|
1476
|
+
239:
|
1477
|
+
- :uint32
|
1478
|
+
- :netscalerApplicationStartupTime
|
1479
|
+
240:
|
1480
|
+
- :uint16
|
1481
|
+
- :netscalerIcaApplicationTerminationType
|
1482
|
+
241:
|
1483
|
+
- :uint32
|
1484
|
+
- :netscalerIcaApplicationTerminationTime
|
1485
|
+
242:
|
1486
|
+
- :uint32
|
1487
|
+
- :netscalerIcaSessionEndTime
|
1488
|
+
243:
|
1489
|
+
- :uint32
|
1490
|
+
- :netscalerIcaClientsideJitter
|
1491
|
+
244:
|
1492
|
+
- :uint32
|
1493
|
+
- :netscalerIcaServersideJitter
|
1494
|
+
245:
|
1495
|
+
- :uint32
|
1496
|
+
- :netscalerIcaAppProcessID
|
1497
|
+
246:
|
1498
|
+
- :string
|
1499
|
+
- :netscalerIcaAppModulePath
|
1500
|
+
247:
|
1501
|
+
- :uint32
|
1502
|
+
- :netscalerIcaDeviceSerialNo
|
1503
|
+
248:
|
1504
|
+
- :octetarray
|
1505
|
+
- :netscalerMsiClientCookie
|
1506
|
+
249:
|
1507
|
+
- :uint64
|
1508
|
+
- :netscalerIcaFlags
|
1509
|
+
250:
|
1510
|
+
- :string
|
1511
|
+
- :netscalerIcaUsername
|
1512
|
+
251:
|
1513
|
+
- :uint8
|
1514
|
+
- :netscalerLicenseType
|
1515
|
+
252:
|
1516
|
+
- :uint64
|
1517
|
+
- :netscalerMaxLicenseCount
|
1518
|
+
253:
|
1519
|
+
- :uint64
|
1520
|
+
- :netscalerCurrentLicenseConsumed
|
1521
|
+
254:
|
1522
|
+
- :uint32
|
1523
|
+
- :netscalerIcaNetworkUpdateStartTime
|
1524
|
+
255:
|
1525
|
+
- :uint32
|
1526
|
+
- :netscalerIcaNetworkUpdateEndTime
|
1527
|
+
256:
|
1528
|
+
- :uint32
|
1529
|
+
- :netscalerIcaClientsideSRTT
|
1530
|
+
257:
|
1531
|
+
- :uint32
|
1532
|
+
- :netscalerIcaServersideSRTT
|
1533
|
+
258:
|
1534
|
+
- :uint32
|
1535
|
+
- :netscalerIcaClientsideDelay
|
1536
|
+
259:
|
1537
|
+
- :uint32
|
1538
|
+
- :netscalerIcaServersideDelay
|
1539
|
+
260:
|
1540
|
+
- :uint32
|
1541
|
+
- :netscalerIcaHostDelay
|
1542
|
+
261:
|
1543
|
+
- :uint16
|
1544
|
+
- :netscalerIcaClientSideWindowSize
|
1545
|
+
262:
|
1546
|
+
- :uint16
|
1547
|
+
- :netscalerIcaServerSideWindowSize
|
1548
|
+
263:
|
1549
|
+
- :uint16
|
1550
|
+
- :netscalerIcaClientSideRTOCount
|
1551
|
+
264:
|
1552
|
+
- :uint16
|
1553
|
+
- :netscalerIcaServerSideRTOCount
|
1554
|
+
265:
|
1555
|
+
- :uint32
|
1556
|
+
- :netscalerIcaL7ClientLatency
|
1557
|
+
266:
|
1558
|
+
- :uint32
|
1559
|
+
- :netscalerIcaL7ServerLatency
|
1560
|
+
267:
|
1561
|
+
- :string
|
1562
|
+
- :netscalerHttpDomainName
|
1563
|
+
268:
|
1564
|
+
- :uint32
|
1565
|
+
- :netscalerCacheRedirClientConnectionCoreID
|
1566
|
+
269:
|
1567
|
+
- :uint32
|
1568
|
+
- :netscalerCacheRedirClientConnectionTransactionID
|
1569
|
+
270:
|
1570
|
+
- :uint32
|
1571
|
+
- :netscalerUnknown270
|
1572
|
+
271:
|
1573
|
+
- :uint32
|
1574
|
+
- :netscalerUnknown271
|
1575
|
+
272:
|
1576
|
+
- :uint32
|
1577
|
+
- :netscalerUnknown272
|
1578
|
+
273:
|
1579
|
+
- :uint32
|
1580
|
+
- :netscalerUnknown273
|
1581
|
+
274:
|
1582
|
+
- :uint32
|
1583
|
+
- :netscalerUnknown274
|
1584
|
+
275:
|
1585
|
+
- :uint32
|
1586
|
+
- :netscalerUnknown275
|
1587
|
+
276:
|
1588
|
+
- :uint32
|
1589
|
+
- :netscalerUnknown276
|
1590
|
+
277:
|
1591
|
+
- :uint32
|
1592
|
+
- :netscalerUnknown277
|
1593
|
+
278:
|
1594
|
+
- :uint32
|
1595
|
+
- :netscalerUnknown278
|
1596
|
+
279:
|
1597
|
+
- :uint32
|
1598
|
+
- :netscalerUnknown279
|
1599
|
+
280:
|
1600
|
+
- :uint32
|
1601
|
+
- :netscalerUnknown280
|
1602
|
+
281:
|
1603
|
+
- :uint32
|
1604
|
+
- :netscalerUnknown281
|
1605
|
+
282:
|
1606
|
+
- :uint32
|
1607
|
+
- :netscalerUnknown282
|
1608
|
+
283:
|
1609
|
+
- :uint32
|
1610
|
+
- :netscalerUnknown283
|
1611
|
+
284:
|
1612
|
+
- :uint32
|
1613
|
+
- :netscalerUnknown284
|
1614
|
+
285:
|
1615
|
+
- :uint32
|
1616
|
+
- :netscalerUnknown285
|
1617
|
+
286:
|
1618
|
+
- :uint32
|
1619
|
+
- :netscalerUnknown286
|
1620
|
+
287:
|
1621
|
+
- :uint32
|
1622
|
+
- :netscalerUnknown287
|
1623
|
+
288:
|
1624
|
+
- :uint32
|
1625
|
+
- :netscalerUnknown288
|
1626
|
+
289:
|
1627
|
+
- :uint32
|
1628
|
+
- :netscalerUnknown289
|
1629
|
+
290:
|
1630
|
+
- :uint32
|
1631
|
+
- :netscalerUnknown290
|
1632
|
+
291:
|
1633
|
+
- :uint32
|
1634
|
+
- :netscalerUnknown291
|
1635
|
+
292:
|
1636
|
+
- :uint32
|
1637
|
+
- :netscalerUnknown292
|
1638
|
+
293:
|
1639
|
+
- :uint32
|
1640
|
+
- :netscalerUnknown293
|
1641
|
+
294:
|
1642
|
+
- :uint32
|
1643
|
+
- :netscalerUnknown294
|
1644
|
+
295:
|
1645
|
+
- :uint32
|
1646
|
+
- :netscalerUnknown295
|
1647
|
+
296:
|
1648
|
+
- :uint32
|
1649
|
+
- :netscalerUnknown296
|
1650
|
+
297:
|
1651
|
+
- :uint32
|
1652
|
+
- :netscalerUnknown297
|
1653
|
+
298:
|
1654
|
+
- :uint32
|
1655
|
+
- :netscalerUnknown298
|
1656
|
+
299:
|
1657
|
+
- :uint32
|
1658
|
+
- :netscalerUnknown299
|
1659
|
+
300:
|
1660
|
+
- :uint32
|
1661
|
+
- :netscalerUnknown300
|
1662
|
+
301:
|
1663
|
+
- :uint32
|
1664
|
+
- :netscalerUnknown301
|
1665
|
+
302:
|
1666
|
+
- :uint32
|
1667
|
+
- :netscalerUnknown302
|
1668
|
+
303:
|
1669
|
+
- :uint32
|
1670
|
+
- :netscalerUnknown303
|
1671
|
+
304:
|
1672
|
+
- :uint32
|
1673
|
+
- :netscalerUnknown304
|
1674
|
+
305:
|
1675
|
+
- :uint32
|
1676
|
+
- :netscalerUnknown305
|
1677
|
+
306:
|
1678
|
+
- :uint32
|
1679
|
+
- :netscalerUnknown306
|
1680
|
+
307:
|
1681
|
+
- :uint32
|
1682
|
+
- :netscalerUnknown307
|
1683
|
+
308:
|
1684
|
+
- :uint32
|
1685
|
+
- :netscalerUnknown308
|
1686
|
+
309:
|
1687
|
+
- :uint32
|
1688
|
+
- :netscalerUnknown309
|
1689
|
+
310:
|
1690
|
+
- :uint32
|
1691
|
+
- :netscalerUnknown310
|
1692
|
+
311:
|
1693
|
+
- :uint32
|
1694
|
+
- :netscalerUnknown311
|
1695
|
+
312:
|
1696
|
+
- :uint32
|
1697
|
+
- :netscalerUnknown312
|
1698
|
+
313:
|
1699
|
+
- :uint32
|
1700
|
+
- :netscalerUnknown313
|
1701
|
+
314:
|
1702
|
+
- :uint32
|
1703
|
+
- :netscalerUnknown314
|
1704
|
+
315:
|
1705
|
+
- :uint32
|
1706
|
+
- :netscalerUnknown315
|
1707
|
+
316:
|
1708
|
+
- :string
|
1709
|
+
- :netscalerUnknown316
|
1710
|
+
317:
|
1711
|
+
- :uint32
|
1712
|
+
- :netscalerUnknown317
|
1713
|
+
318:
|
1714
|
+
- :uint32
|
1715
|
+
- :netscalerUnknown318
|
1716
|
+
319:
|
1717
|
+
- :string
|
1718
|
+
- :netscalerUnknown319
|
1719
|
+
320:
|
1720
|
+
- :uint16
|
1721
|
+
- :netscalerUnknown320
|
1722
|
+
321:
|
1723
|
+
- :uint32
|
1724
|
+
- :netscalerUnknown321
|
1725
|
+
322:
|
1726
|
+
- :uint32
|
1727
|
+
- :netscalerUnknown322
|
1728
|
+
323:
|
1729
|
+
- :uint16
|
1730
|
+
- :netscalerUnknown323
|
1731
|
+
324:
|
1732
|
+
- :uint16
|
1733
|
+
- :netscalerUnknown324
|
1734
|
+
325:
|
1735
|
+
- :uint16
|
1736
|
+
- :netscalerUnknown325
|
1737
|
+
326:
|
1738
|
+
- :uint16
|
1739
|
+
- :netscalerUnknown326
|
1740
|
+
327:
|
1741
|
+
- :uint32
|
1742
|
+
- :netscalerUnknown327
|
1743
|
+
328:
|
1744
|
+
- :uint16
|
1745
|
+
- :netscalerUnknown328
|
1746
|
+
329:
|
1747
|
+
- :uint16
|
1748
|
+
- :netscalerUnknown329
|
1749
|
+
330:
|
1750
|
+
- :uint16
|
1751
|
+
- :netscalerUnknown330
|
1752
|
+
331:
|
1753
|
+
- :uint16
|
1754
|
+
- :netscalerUnknown331
|
1755
|
+
332:
|
1756
|
+
- :uint32
|
1757
|
+
- :netscalerUnknown332
|
1758
|
+
333:
|
1759
|
+
- :string
|
1760
|
+
- :netscalerUnknown333
|
1761
|
+
334:
|
1762
|
+
- :string
|
1763
|
+
- :netscalerUnknown334
|
1764
|
+
335:
|
1765
|
+
- :uint32
|
1766
|
+
- :netscalerUnknown335
|
1767
|
+
336:
|
1768
|
+
- :uint32
|
1769
|
+
- :netscalerUnknown336
|
1770
|
+
337:
|
1771
|
+
- :uint32
|
1772
|
+
- :netscalerUnknown337
|
1773
|
+
338:
|
1774
|
+
- :uint32
|
1775
|
+
- :netscalerUnknown338
|
1776
|
+
339:
|
1777
|
+
- :uint32
|
1778
|
+
- :netscalerUnknown339
|
1779
|
+
340:
|
1780
|
+
- :uint32
|
1781
|
+
- :netscalerUnknown340
|
1782
|
+
341:
|
1783
|
+
- :uint32
|
1784
|
+
- :netscalerUnknown341
|
1785
|
+
342:
|
1786
|
+
- :uint32
|
1787
|
+
- :netscalerUnknown342
|
1788
|
+
343:
|
1789
|
+
- :uint32
|
1790
|
+
- :netscalerUnknown343
|
1791
|
+
344:
|
1792
|
+
- :uint32
|
1793
|
+
- :netscalerUnknown344
|
1794
|
+
345:
|
1795
|
+
- :uint32
|
1796
|
+
- :netscalerUnknown345
|
1797
|
+
346:
|
1798
|
+
- :uint32
|
1799
|
+
- :netscalerUnknown346
|
1800
|
+
347:
|
1801
|
+
- :uint32
|
1802
|
+
- :netscalerUnknown347
|
1803
|
+
348:
|
1804
|
+
- :uint16
|
1805
|
+
- :netscalerUnknown348
|
1806
|
+
349:
|
1807
|
+
- :string
|
1808
|
+
- :netscalerUnknown349
|
1809
|
+
350:
|
1810
|
+
- :string
|
1811
|
+
- :netscalerUnknown350
|
1812
|
+
351:
|
1813
|
+
- :string
|
1814
|
+
- :netscalerUnknown351
|
1815
|
+
352:
|
1816
|
+
- :uint16
|
1817
|
+
- :netscalerUnknown352
|
1818
|
+
353:
|
1819
|
+
- :uint32
|
1820
|
+
- :netscalerUnknown353
|
1821
|
+
354:
|
1822
|
+
- :uint32
|
1823
|
+
- :netscalerUnknown354
|
1824
|
+
355:
|
1825
|
+
- :uint32
|
1826
|
+
- :netscalerUnknown355
|
1827
|
+
356:
|
1828
|
+
- :uint32
|
1829
|
+
- :netscalerUnknown356
|
1830
|
+
357:
|
1831
|
+
- :uint32
|
1832
|
+
- :netscalerUnknown357
|
1833
|
+
363:
|
1834
|
+
- :octetarray
|
1835
|
+
- :netscalerUnknown363
|
1836
|
+
383:
|
1837
|
+
- :octetarray
|
1838
|
+
- :netscalerUnknown383
|
1839
|
+
391:
|
1840
|
+
- :uint32
|
1841
|
+
- :netscalerUnknown391
|
1842
|
+
398:
|
1843
|
+
- :uint32
|
1844
|
+
- :netscalerUnknown398
|
1845
|
+
404:
|
1846
|
+
- :uint32
|
1847
|
+
- :netscalerUnknown404
|
1848
|
+
405:
|
1849
|
+
- :uint32
|
1850
|
+
- :netscalerUnknown405
|
1851
|
+
427:
|
1852
|
+
- :uint64
|
1853
|
+
- :netscalerUnknown427
|
1854
|
+
429:
|
1855
|
+
- :uint8
|
1856
|
+
- :netscalerUnknown429
|
1857
|
+
432:
|
1858
|
+
- :uint8
|
1859
|
+
- :netscalerUnknown432
|
1860
|
+
433:
|
1861
|
+
- :uint8
|
1862
|
+
- :netscalerUnknown433
|
1863
|
+
453:
|
1864
|
+
- :uint64
|
1865
|
+
- :netscalerUnknown453
|
1866
|
+
465:
|
1867
|
+
- :uint32
|
1868
|
+
- :netscalerUnknown465
|
1205
1869
|
29305:
|
1206
1870
|
1:
|
1207
1871
|
- :uint64
|