forked from Open-Markets-Initiative/wireshark-lua
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathEurex.Derivatives.Eobi.T7.v7.1.Script.Dissector.lua
4546 lines (3482 loc) · 155 KB
/
Eurex.Derivatives.Eobi.T7.v7.1.Script.Dissector.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
-----------------------------------------------------------------------
-- Lua Script Wireshark Dissector
--
-- Please see end of file for rules and regulations
-----------------------------------------------------------------------
-- Eurex Derivatives Eobi T7 7.1 Protocol
local eurex_derivatives_eobi_t7_v7_1 = Proto("Eurex.Derivatives.Eobi.T7.v7.1.Lua", "Eurex Derivatives Eobi T7 7.1")
-- Component Tables
local show = {}
local format = {}
local display = {}
local dissect = {}
local size_of = {}
local verify = {}
-----------------------------------------------------------------------
-- Declare Protocol Fields
-----------------------------------------------------------------------
-- Eurex Derivatives Eobi T7 7.1 Fields
eurex_derivatives_eobi_t7_v7_1.fields.add_complex_instrument = ProtoField.new("Add Complex Instrument", "eurex.derivatives.eobi.t7.v7.1.addcomplexinstrument", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.aggressor_side = ProtoField.new("Aggressor Side", "eurex.derivatives.eobi.t7.v7.1.aggressorside", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.aggressor_time = ProtoField.new("Aggressor Time", "eurex.derivatives.eobi.t7.v7.1.aggressortime", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.algorithmic_trade_indicator = ProtoField.new("Algorithmic Trade Indicator", "eurex.derivatives.eobi.t7.v7.1.algorithmictradeindicator", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.application_sequence_number = ProtoField.new("Application Sequence Number", "eurex.derivatives.eobi.t7.v7.1.applicationsequencenumber", ftypes.UINT32)
eurex_derivatives_eobi_t7_v7_1.fields.application_sequence_reset_indicator = ProtoField.new("Application Sequence Reset Indicator", "eurex.derivatives.eobi.t7.v7.1.applicationsequenceresetindicator", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.auction_bbo = ProtoField.new("Auction Bbo", "eurex.derivatives.eobi.t7.v7.1.auctionbbo", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.auction_clearing_price = ProtoField.new("Auction Clearing Price", "eurex.derivatives.eobi.t7.v7.1.auctionclearingprice", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.bid_ord_type = ProtoField.new("Bid Ord Type", "eurex.derivatives.eobi.t7.v7.1.bidordtype", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.bid_px = ProtoField.new("Bid Px", "eurex.derivatives.eobi.t7.v7.1.bidpx", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.bid_size = ProtoField.new("Bid Size", "eurex.derivatives.eobi.t7.v7.1.bidsize", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.body_len = ProtoField.new("Body Len", "eurex.derivatives.eobi.t7.v7.1.bodylen", ftypes.UINT16)
eurex_derivatives_eobi_t7_v7_1.fields.completion_indicator = ProtoField.new("Completion Indicator", "eurex.derivatives.eobi.t7.v7.1.completionindicator", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.cross_request = ProtoField.new("Cross Request", "eurex.derivatives.eobi.t7.v7.1.crossrequest", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.cross_request_type = ProtoField.new("Cross Request Type", "eurex.derivatives.eobi.t7.v7.1.crossrequesttype", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.display_qty = ProtoField.new("Display Qty", "eurex.derivatives.eobi.t7.v7.1.displayqty", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.exec_id = ProtoField.new("Exec Id", "eurex.derivatives.eobi.t7.v7.1.execid", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.execution_summary = ProtoField.new("Execution Summary", "eurex.derivatives.eobi.t7.v7.1.executionsummary", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.fast_market_indicator = ProtoField.new("Fast Market Indicator", "eurex.derivatives.eobi.t7.v7.1.fastmarketindicator", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.full_order_execution = ProtoField.new("Full Order Execution", "eurex.derivatives.eobi.t7.v7.1.fullorderexecution", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.header_length = ProtoField.new("Header Length", "eurex.derivatives.eobi.t7.v7.1.headerlength", ftypes.UINT16)
eurex_derivatives_eobi_t7_v7_1.fields.heartbeat = ProtoField.new("Heartbeat", "eurex.derivatives.eobi.t7.v7.1.heartbeat", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.imbalance_qty = ProtoField.new("Imbalance Qty", "eurex.derivatives.eobi.t7.v7.1.imbalanceqty", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.implied_market_indicator = ProtoField.new("Implied Market Indicator", "eurex.derivatives.eobi.t7.v7.1.impliedmarketindicator", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.input_source = ProtoField.new("Input Source", "eurex.derivatives.eobi.t7.v7.1.inputsource", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.instrmt_leg_grp = ProtoField.new("Instrmt Leg Grp", "eurex.derivatives.eobi.t7.v7.1.instrmtleggrp", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.instrument_state_change = ProtoField.new("Instrument State Change", "eurex.derivatives.eobi.t7.v7.1.instrumentstatechange", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.instrument_summary = ProtoField.new("Instrument Summary", "eurex.derivatives.eobi.t7.v7.1.instrumentsummary", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.last_msg_seq_num_processed = ProtoField.new("Last Msg Seq Num Processed", "eurex.derivatives.eobi.t7.v7.1.lastmsgseqnumprocessed", ftypes.UINT32)
eurex_derivatives_eobi_t7_v7_1.fields.last_px = ProtoField.new("Last Px", "eurex.derivatives.eobi.t7.v7.1.lastpx", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.last_qty = ProtoField.new("Last Qty", "eurex.derivatives.eobi.t7.v7.1.lastqty", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.last_update_time = ProtoField.new("Last Update Time", "eurex.derivatives.eobi.t7.v7.1.lastupdatetime", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.leg_price = ProtoField.new("Leg Price", "eurex.derivatives.eobi.t7.v7.1.legprice", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.leg_ratio_qty = ProtoField.new("Leg Ratio Qty", "eurex.derivatives.eobi.t7.v7.1.legratioqty", ftypes.INT32)
eurex_derivatives_eobi_t7_v7_1.fields.leg_security_id = ProtoField.new("Leg Security Id", "eurex.derivatives.eobi.t7.v7.1.legsecurityid", ftypes.INT64)
eurex_derivatives_eobi_t7_v7_1.fields.leg_security_type = ProtoField.new("Leg Security Type", "eurex.derivatives.eobi.t7.v7.1.legsecuritytype", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.leg_side = ProtoField.new("Leg Side", "eurex.derivatives.eobi.t7.v7.1.legside", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.leg_symbol = ProtoField.new("Leg Symbol", "eurex.derivatives.eobi.t7.v7.1.legsymbol", ftypes.INT32)
eurex_derivatives_eobi_t7_v7_1.fields.market_condition = ProtoField.new("Market Condition", "eurex.derivatives.eobi.t7.v7.1.marketcondition", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.market_segment_id = ProtoField.new("Market Segment Id", "eurex.derivatives.eobi.t7.v7.1.marketsegmentid", ftypes.INT32)
eurex_derivatives_eobi_t7_v7_1.fields.match_sub_type = ProtoField.new("Match Sub Type", "eurex.derivatives.eobi.t7.v7.1.matchsubtype", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.match_type = ProtoField.new("Match Type", "eurex.derivatives.eobi.t7.v7.1.matchtype", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.md_entry_px = ProtoField.new("Md Entry Px", "eurex.derivatives.eobi.t7.v7.1.mdentrypx", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.md_entry_size = ProtoField.new("Md Entry Size", "eurex.derivatives.eobi.t7.v7.1.mdentrysize", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.md_entry_type = ProtoField.new("Md Entry Type", "eurex.derivatives.eobi.t7.v7.1.mdentrytype", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.md_instrument_entry_grp = ProtoField.new("Md Instrument Entry Grp", "eurex.derivatives.eobi.t7.v7.1.mdinstrumententrygrp", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.md_trade_entry_grp = ProtoField.new("Md Trade Entry Grp", "eurex.derivatives.eobi.t7.v7.1.mdtradeentrygrp", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.message = ProtoField.new("Message", "eurex.derivatives.eobi.t7.v7.1.message", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.message_header = ProtoField.new("Message Header", "eurex.derivatives.eobi.t7.v7.1.messageheader", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.msg_seq_num = ProtoField.new("Msg Seq Num", "eurex.derivatives.eobi.t7.v7.1.msgseqnum", ftypes.UINT32)
eurex_derivatives_eobi_t7_v7_1.fields.no_legs = ProtoField.new("No Legs", "eurex.derivatives.eobi.t7.v7.1.nolegs", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.no_md_entries = ProtoField.new("No Md Entries", "eurex.derivatives.eobi.t7.v7.1.nomdentries", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.offer_ord_type = ProtoField.new("Offer Ord Type", "eurex.derivatives.eobi.t7.v7.1.offerordtype", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.offer_px = ProtoField.new("Offer Px", "eurex.derivatives.eobi.t7.v7.1.offerpx", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.offer_size = ProtoField.new("Offer Size", "eurex.derivatives.eobi.t7.v7.1.offersize", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.ord_type = ProtoField.new("Ord Type", "eurex.derivatives.eobi.t7.v7.1.ordtype", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.order_add = ProtoField.new("Order Add", "eurex.derivatives.eobi.t7.v7.1.orderadd", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.order_delete = ProtoField.new("Order Delete", "eurex.derivatives.eobi.t7.v7.1.orderdelete", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.order_details = ProtoField.new("Order Details", "eurex.derivatives.eobi.t7.v7.1.orderdetails", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.order_mass_delete = ProtoField.new("Order Mass Delete", "eurex.derivatives.eobi.t7.v7.1.ordermassdelete", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.order_modify = ProtoField.new("Order Modify", "eurex.derivatives.eobi.t7.v7.1.ordermodify", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.order_modify_same_prio = ProtoField.new("Order Modify Same Prio", "eurex.derivatives.eobi.t7.v7.1.ordermodifysameprio", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.packet = ProtoField.new("Packet", "eurex.derivatives.eobi.t7.v7.1.packet", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.packet_header = ProtoField.new("Packet Header", "eurex.derivatives.eobi.t7.v7.1.packetheader", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.packet_id = ProtoField.new("Packet Id", "eurex.derivatives.eobi.t7.v7.1.packetid", ftypes.UINT16)
eurex_derivatives_eobi_t7_v7_1.fields.packet_info = ProtoField.new("Packet Info", "eurex.derivatives.eobi.t7.v7.1.packetinfo", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.packet_seq_num = ProtoField.new("Packet Seq Num", "eurex.derivatives.eobi.t7.v7.1.packetseqnum", ftypes.UINT32)
eurex_derivatives_eobi_t7_v7_1.fields.pad_1 = ProtoField.new("Pad 1", "eurex.derivatives.eobi.t7.v7.1.pad1", ftypes.BYTES)
eurex_derivatives_eobi_t7_v7_1.fields.pad_2 = ProtoField.new("Pad 2", "eurex.derivatives.eobi.t7.v7.1.pad2", ftypes.BYTES)
eurex_derivatives_eobi_t7_v7_1.fields.pad_3 = ProtoField.new("Pad 3", "eurex.derivatives.eobi.t7.v7.1.pad3", ftypes.BYTES)
eurex_derivatives_eobi_t7_v7_1.fields.pad_4 = ProtoField.new("Pad 4", "eurex.derivatives.eobi.t7.v7.1.pad4", ftypes.BYTES)
eurex_derivatives_eobi_t7_v7_1.fields.pad_5 = ProtoField.new("Pad 5", "eurex.derivatives.eobi.t7.v7.1.pad5", ftypes.BYTES)
eurex_derivatives_eobi_t7_v7_1.fields.pad_6 = ProtoField.new("Pad 6", "eurex.derivatives.eobi.t7.v7.1.pad6", ftypes.BYTES)
eurex_derivatives_eobi_t7_v7_1.fields.pad_7 = ProtoField.new("Pad 7", "eurex.derivatives.eobi.t7.v7.1.pad7", ftypes.BYTES)
eurex_derivatives_eobi_t7_v7_1.fields.partial_order_execution = ProtoField.new("Partial Order Execution", "eurex.derivatives.eobi.t7.v7.1.partialorderexecution", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.partition_id = ProtoField.new("Partition Id", "eurex.derivatives.eobi.t7.v7.1.partitionid", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.payload = ProtoField.new("Payload", "eurex.derivatives.eobi.t7.v7.1.payload", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.potential_security_trading_event = ProtoField.new("Potential Security Trading Event", "eurex.derivatives.eobi.t7.v7.1.potentialsecuritytradingevent", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.prev_display_qty = ProtoField.new("Prev Display Qty", "eurex.derivatives.eobi.t7.v7.1.prevdisplayqty", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.prev_price = ProtoField.new("Prev Price", "eurex.derivatives.eobi.t7.v7.1.prevprice", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.price = ProtoField.new("Price", "eurex.derivatives.eobi.t7.v7.1.price", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.product_complex = ProtoField.new("Product Complex", "eurex.derivatives.eobi.t7.v7.1.productcomplex", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.product_state_change = ProtoField.new("Product State Change", "eurex.derivatives.eobi.t7.v7.1.productstatechange", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.product_summary = ProtoField.new("Product Summary", "eurex.derivatives.eobi.t7.v7.1.productsummary", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.quote_request = ProtoField.new("Quote Request", "eurex.derivatives.eobi.t7.v7.1.quoterequest", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.request_time = ProtoField.new("Request Time", "eurex.derivatives.eobi.t7.v7.1.requesttime", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.resting_cxl_qty = ProtoField.new("Resting Cxl Qty", "eurex.derivatives.eobi.t7.v7.1.restingcxlqty", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.resting_hidden_qty = ProtoField.new("Resting Hidden Qty", "eurex.derivatives.eobi.t7.v7.1.restinghiddenqty", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.security_id = ProtoField.new("Security Id", "eurex.derivatives.eobi.t7.v7.1.securityid", ftypes.INT64)
eurex_derivatives_eobi_t7_v7_1.fields.security_status = ProtoField.new("Security Status", "eurex.derivatives.eobi.t7.v7.1.securitystatus", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.security_sub_type = ProtoField.new("Security Sub Type", "eurex.derivatives.eobi.t7.v7.1.securitysubtype", ftypes.INT32)
eurex_derivatives_eobi_t7_v7_1.fields.security_trading_event = ProtoField.new("Security Trading Event", "eurex.derivatives.eobi.t7.v7.1.securitytradingevent", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.security_trading_status = ProtoField.new("Security Trading Status", "eurex.derivatives.eobi.t7.v7.1.securitytradingstatus", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.side = ProtoField.new("Side", "eurex.derivatives.eobi.t7.v7.1.side", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.snapshot_order = ProtoField.new("Snapshot Order", "eurex.derivatives.eobi.t7.v7.1.snapshotorder", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.sold_out_indicator = ProtoField.new("Sold Out Indicator", "eurex.derivatives.eobi.t7.v7.1.soldoutindicator", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.template_id = ProtoField.new("Template Id", "eurex.derivatives.eobi.t7.v7.1.templateid", ftypes.UINT16)
eurex_derivatives_eobi_t7_v7_1.fields.top_of_book = ProtoField.new("Top Of Book", "eurex.derivatives.eobi.t7.v7.1.topofbook", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.tot_no_orders = ProtoField.new("Tot No Orders", "eurex.derivatives.eobi.t7.v7.1.totnoorders", ftypes.UINT16)
eurex_derivatives_eobi_t7_v7_1.fields.trad_ses_status = ProtoField.new("Trad Ses Status", "eurex.derivatives.eobi.t7.v7.1.tradsesstatus", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.trade_condition = ProtoField.new("Trade Condition", "eurex.derivatives.eobi.t7.v7.1.tradecondition", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.trade_report = ProtoField.new("Trade Report", "eurex.derivatives.eobi.t7.v7.1.tradereport", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.trade_reversal = ProtoField.new("Trade Reversal", "eurex.derivatives.eobi.t7.v7.1.tradereversal", ftypes.STRING)
eurex_derivatives_eobi_t7_v7_1.fields.trading_session_id = ProtoField.new("Trading Session Id", "eurex.derivatives.eobi.t7.v7.1.tradingsessionid", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.trading_session_sub_id = ProtoField.new("Trading Session Sub Id", "eurex.derivatives.eobi.t7.v7.1.tradingsessionsubid", ftypes.UINT8)
eurex_derivatives_eobi_t7_v7_1.fields.transact_time = ProtoField.new("Transact Time", "eurex.derivatives.eobi.t7.v7.1.transacttime", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.trd_match_id = ProtoField.new("Trd Match Id", "eurex.derivatives.eobi.t7.v7.1.trdmatchid", ftypes.UINT32)
eurex_derivatives_eobi_t7_v7_1.fields.trd_reg_ts_execution_time = ProtoField.new("Trd Reg Ts Execution Time", "eurex.derivatives.eobi.t7.v7.1.trdregtsexecutiontime", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.trd_reg_ts_prev_time_priority = ProtoField.new("Trd Reg Ts Prev Time Priority", "eurex.derivatives.eobi.t7.v7.1.trdregtsprevtimepriority", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.trd_reg_ts_time_in = ProtoField.new("Trd Reg Ts Time In", "eurex.derivatives.eobi.t7.v7.1.trdregtstimein", ftypes.UINT64)
eurex_derivatives_eobi_t7_v7_1.fields.trd_reg_ts_time_priority = ProtoField.new("Trd Reg Ts Time Priority", "eurex.derivatives.eobi.t7.v7.1.trdregtstimepriority", ftypes.UINT64)
-----------------------------------------------------------------------
-- Declare Dissection Options
-----------------------------------------------------------------------
-- Eurex Derivatives Eobi T7 7.1 Element Dissection Options
show.add_complex_instrument = true
show.auction_bbo = true
show.auction_clearing_price = true
show.cross_request = true
show.execution_summary = true
show.full_order_execution = true
show.heartbeat = true
show.instrmt_leg_grp = true
show.instrument_state_change = true
show.instrument_summary = true
show.md_instrument_entry_grp = true
show.md_trade_entry_grp = true
show.message = true
show.message_header = true
show.order_add = true
show.order_delete = true
show.order_details = true
show.order_mass_delete = true
show.order_modify = true
show.order_modify_same_prio = true
show.packet = true
show.packet_header = true
show.packet_info = true
show.partial_order_execution = true
show.product_state_change = true
show.product_summary = true
show.quote_request = true
show.snapshot_order = true
show.top_of_book = true
show.trade_report = true
show.trade_reversal = true
show.payload = false
-- Register Eurex Derivatives Eobi T7 7.1 Show Options
eurex_derivatives_eobi_t7_v7_1.prefs.show_add_complex_instrument = Pref.bool("Show Add Complex Instrument", show.add_complex_instrument, "Parse and add Add Complex Instrument to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_auction_bbo = Pref.bool("Show Auction Bbo", show.auction_bbo, "Parse and add Auction Bbo to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_auction_clearing_price = Pref.bool("Show Auction Clearing Price", show.auction_clearing_price, "Parse and add Auction Clearing Price to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_cross_request = Pref.bool("Show Cross Request", show.cross_request, "Parse and add Cross Request to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_execution_summary = Pref.bool("Show Execution Summary", show.execution_summary, "Parse and add Execution Summary to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_full_order_execution = Pref.bool("Show Full Order Execution", show.full_order_execution, "Parse and add Full Order Execution to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_heartbeat = Pref.bool("Show Heartbeat", show.heartbeat, "Parse and add Heartbeat to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_instrmt_leg_grp = Pref.bool("Show Instrmt Leg Grp", show.instrmt_leg_grp, "Parse and add Instrmt Leg Grp to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_instrument_state_change = Pref.bool("Show Instrument State Change", show.instrument_state_change, "Parse and add Instrument State Change to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_instrument_summary = Pref.bool("Show Instrument Summary", show.instrument_summary, "Parse and add Instrument Summary to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_md_instrument_entry_grp = Pref.bool("Show Md Instrument Entry Grp", show.md_instrument_entry_grp, "Parse and add Md Instrument Entry Grp to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_md_trade_entry_grp = Pref.bool("Show Md Trade Entry Grp", show.md_trade_entry_grp, "Parse and add Md Trade Entry Grp to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_message = Pref.bool("Show Message", show.message, "Parse and add Message to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_message_header = Pref.bool("Show Message Header", show.message_header, "Parse and add Message Header to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_order_add = Pref.bool("Show Order Add", show.order_add, "Parse and add Order Add to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_order_delete = Pref.bool("Show Order Delete", show.order_delete, "Parse and add Order Delete to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_order_details = Pref.bool("Show Order Details", show.order_details, "Parse and add Order Details to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_order_mass_delete = Pref.bool("Show Order Mass Delete", show.order_mass_delete, "Parse and add Order Mass Delete to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_order_modify = Pref.bool("Show Order Modify", show.order_modify, "Parse and add Order Modify to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_order_modify_same_prio = Pref.bool("Show Order Modify Same Prio", show.order_modify_same_prio, "Parse and add Order Modify Same Prio to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_packet = Pref.bool("Show Packet", show.packet, "Parse and add Packet to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_packet_header = Pref.bool("Show Packet Header", show.packet_header, "Parse and add Packet Header to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_packet_info = Pref.bool("Show Packet Info", show.packet_info, "Parse and add Packet Info to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_partial_order_execution = Pref.bool("Show Partial Order Execution", show.partial_order_execution, "Parse and add Partial Order Execution to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_product_state_change = Pref.bool("Show Product State Change", show.product_state_change, "Parse and add Product State Change to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_product_summary = Pref.bool("Show Product Summary", show.product_summary, "Parse and add Product Summary to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_quote_request = Pref.bool("Show Quote Request", show.quote_request, "Parse and add Quote Request to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_snapshot_order = Pref.bool("Show Snapshot Order", show.snapshot_order, "Parse and add Snapshot Order to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_top_of_book = Pref.bool("Show Top Of Book", show.top_of_book, "Parse and add Top Of Book to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_trade_report = Pref.bool("Show Trade Report", show.trade_report, "Parse and add Trade Report to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_trade_reversal = Pref.bool("Show Trade Reversal", show.trade_reversal, "Parse and add Trade Reversal to protocol tree")
eurex_derivatives_eobi_t7_v7_1.prefs.show_payload = Pref.bool("Show Payload", show.payload, "Parse and add Payload to protocol tree")
-- Handle changed preferences
function eurex_derivatives_eobi_t7_v7_1.prefs_changed()
local changed = false
-- Check if show options have changed
if show.add_complex_instrument ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_add_complex_instrument then
show.add_complex_instrument = eurex_derivatives_eobi_t7_v7_1.prefs.show_add_complex_instrument
changed = true
end
if show.auction_bbo ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_auction_bbo then
show.auction_bbo = eurex_derivatives_eobi_t7_v7_1.prefs.show_auction_bbo
changed = true
end
if show.auction_clearing_price ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_auction_clearing_price then
show.auction_clearing_price = eurex_derivatives_eobi_t7_v7_1.prefs.show_auction_clearing_price
changed = true
end
if show.cross_request ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_cross_request then
show.cross_request = eurex_derivatives_eobi_t7_v7_1.prefs.show_cross_request
changed = true
end
if show.execution_summary ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_execution_summary then
show.execution_summary = eurex_derivatives_eobi_t7_v7_1.prefs.show_execution_summary
changed = true
end
if show.full_order_execution ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_full_order_execution then
show.full_order_execution = eurex_derivatives_eobi_t7_v7_1.prefs.show_full_order_execution
changed = true
end
if show.heartbeat ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_heartbeat then
show.heartbeat = eurex_derivatives_eobi_t7_v7_1.prefs.show_heartbeat
changed = true
end
if show.instrmt_leg_grp ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_instrmt_leg_grp then
show.instrmt_leg_grp = eurex_derivatives_eobi_t7_v7_1.prefs.show_instrmt_leg_grp
changed = true
end
if show.instrument_state_change ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_instrument_state_change then
show.instrument_state_change = eurex_derivatives_eobi_t7_v7_1.prefs.show_instrument_state_change
changed = true
end
if show.instrument_summary ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_instrument_summary then
show.instrument_summary = eurex_derivatives_eobi_t7_v7_1.prefs.show_instrument_summary
changed = true
end
if show.md_instrument_entry_grp ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_md_instrument_entry_grp then
show.md_instrument_entry_grp = eurex_derivatives_eobi_t7_v7_1.prefs.show_md_instrument_entry_grp
changed = true
end
if show.md_trade_entry_grp ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_md_trade_entry_grp then
show.md_trade_entry_grp = eurex_derivatives_eobi_t7_v7_1.prefs.show_md_trade_entry_grp
changed = true
end
if show.message ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_message then
show.message = eurex_derivatives_eobi_t7_v7_1.prefs.show_message
changed = true
end
if show.message_header ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_message_header then
show.message_header = eurex_derivatives_eobi_t7_v7_1.prefs.show_message_header
changed = true
end
if show.order_add ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_order_add then
show.order_add = eurex_derivatives_eobi_t7_v7_1.prefs.show_order_add
changed = true
end
if show.order_delete ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_order_delete then
show.order_delete = eurex_derivatives_eobi_t7_v7_1.prefs.show_order_delete
changed = true
end
if show.order_details ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_order_details then
show.order_details = eurex_derivatives_eobi_t7_v7_1.prefs.show_order_details
changed = true
end
if show.order_mass_delete ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_order_mass_delete then
show.order_mass_delete = eurex_derivatives_eobi_t7_v7_1.prefs.show_order_mass_delete
changed = true
end
if show.order_modify ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_order_modify then
show.order_modify = eurex_derivatives_eobi_t7_v7_1.prefs.show_order_modify
changed = true
end
if show.order_modify_same_prio ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_order_modify_same_prio then
show.order_modify_same_prio = eurex_derivatives_eobi_t7_v7_1.prefs.show_order_modify_same_prio
changed = true
end
if show.packet ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_packet then
show.packet = eurex_derivatives_eobi_t7_v7_1.prefs.show_packet
changed = true
end
if show.packet_header ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_packet_header then
show.packet_header = eurex_derivatives_eobi_t7_v7_1.prefs.show_packet_header
changed = true
end
if show.packet_info ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_packet_info then
show.packet_info = eurex_derivatives_eobi_t7_v7_1.prefs.show_packet_info
changed = true
end
if show.partial_order_execution ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_partial_order_execution then
show.partial_order_execution = eurex_derivatives_eobi_t7_v7_1.prefs.show_partial_order_execution
changed = true
end
if show.product_state_change ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_product_state_change then
show.product_state_change = eurex_derivatives_eobi_t7_v7_1.prefs.show_product_state_change
changed = true
end
if show.product_summary ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_product_summary then
show.product_summary = eurex_derivatives_eobi_t7_v7_1.prefs.show_product_summary
changed = true
end
if show.quote_request ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_quote_request then
show.quote_request = eurex_derivatives_eobi_t7_v7_1.prefs.show_quote_request
changed = true
end
if show.snapshot_order ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_snapshot_order then
show.snapshot_order = eurex_derivatives_eobi_t7_v7_1.prefs.show_snapshot_order
changed = true
end
if show.top_of_book ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_top_of_book then
show.top_of_book = eurex_derivatives_eobi_t7_v7_1.prefs.show_top_of_book
changed = true
end
if show.trade_report ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_trade_report then
show.trade_report = eurex_derivatives_eobi_t7_v7_1.prefs.show_trade_report
changed = true
end
if show.trade_reversal ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_trade_reversal then
show.trade_reversal = eurex_derivatives_eobi_t7_v7_1.prefs.show_trade_reversal
changed = true
end
if show.payload ~= eurex_derivatives_eobi_t7_v7_1.prefs.show_payload then
show.payload = eurex_derivatives_eobi_t7_v7_1.prefs.show_payload
changed = true
end
-- Reload on changed preference
if changed then
reload()
end
end
-----------------------------------------------------------------------
-- Dissect Eurex Derivatives Eobi T7 7.1
-----------------------------------------------------------------------
-- Size: Pad 7
size_of.pad_7 = 7
-- Display: Pad 7
display.pad_7 = function(value)
return "Pad 7: "..value
end
-- Dissect: Pad 7
dissect.pad_7 = function(buffer, offset, packet, parent)
local length = size_of.pad_7
local range = buffer(offset, length)
local value = range:bytes():tohex(false, " ")
local display = display.pad_7(value, buffer, offset, packet, parent)
parent:add(eurex_derivatives_eobi_t7_v7_1.fields.pad_7, range, value, display)
return offset + length, value
end
-- Size: Md Entry Type
size_of.md_entry_type = 1
-- Display: Md Entry Type
display.md_entry_type = function(value)
if value == 2 then
return "Md Entry Type: Trade (2)"
end
if value == 4 then
return "Md Entry Type: Opening Price (4)"
end
if value == 5 then
return "Md Entry Type: Closing Price (5)"
end
if value == 7 then
return "Md Entry Type: High Price (7)"
end
if value == 8 then
return "Md Entry Type: Low Price (8)"
end
if value == 66 then
return "Md Entry Type: Trade Volume (66)"
end
if value == 101 then
return "Md Entry Type: Previous Closing Price (101)"
end
if value == 200 then
return "Md Entry Type: Opening Auction (200)"
end
if value == 201 then
return "Md Entry Type: Intraday Auction (201)"
end
if value == 202 then
return "Md Entry Type: Circuit Breaker Auction (202)"
end
if value == 203 then
return "Md Entry Type: Closing Auction (203)"
end
if value == 204 then
return "Md Entry Type: Ipo Auction (204)"
end
return "Md Entry Type: Unknown("..value..")"
end
-- Dissect: Md Entry Type
dissect.md_entry_type = function(buffer, offset, packet, parent)
local length = size_of.md_entry_type
local range = buffer(offset, length)
local value = range:le_uint()
local display = display.md_entry_type(value, buffer, offset, packet, parent)
parent:add(eurex_derivatives_eobi_t7_v7_1.fields.md_entry_type, range, value, display)
return offset + length, value
end
-- Size: Md Entry Size
size_of.md_entry_size = 8
-- Display: Md Entry Size
display.md_entry_size = function(value)
local factor = 10000
return "Md Entry Size: "..value:tonumber()/factor
end
-- Dissect: Md Entry Size
dissect.md_entry_size = function(buffer, offset, packet, parent)
local length = size_of.md_entry_size
local range = buffer(offset, length)
local value = range:le_uint64()
local display = display.md_entry_size(value, buffer, offset, packet, parent)
parent:add(eurex_derivatives_eobi_t7_v7_1.fields.md_entry_size, range, value, display)
return offset + length, value
end
-- Size: Md Entry Px
size_of.md_entry_px = 8
-- Display: Md Entry Px
display.md_entry_px = function(value)
local factor = 100000000
return "Md Entry Px: "..value:tonumber()/factor
end
-- Dissect: Md Entry Px
dissect.md_entry_px = function(buffer, offset, packet, parent)
local length = size_of.md_entry_px
local range = buffer(offset, length)
local value = range:le_uint64()
local display = display.md_entry_px(value, buffer, offset, packet, parent)
parent:add(eurex_derivatives_eobi_t7_v7_1.fields.md_entry_px, range, value, display)
return offset + length, value
end
-- Calculate size of: Md Trade Entry Grp
size_of.md_trade_entry_grp = function(buffer, offset)
local index = 0
index = index + size_of.md_entry_px
index = index + size_of.md_entry_size
index = index + size_of.md_entry_type
index = index + size_of.pad_7
return index
end
-- Display: Md Trade Entry Grp
display.md_trade_entry_grp = function(buffer, offset, size, packet, parent)
return ""
end
-- Dissect Fields: Md Trade Entry Grp
dissect.md_trade_entry_grp_fields = function(buffer, offset, packet, parent)
local index = offset
-- Md Entry Px: 8 Byte Unsigned Fixed Width Integer
index, md_entry_px = dissect.md_entry_px(buffer, index, packet, parent)
-- Md Entry Size: 8 Byte Unsigned Fixed Width Integer
index, md_entry_size = dissect.md_entry_size(buffer, index, packet, parent)
-- Md Entry Type: 1 Byte Unsigned Fixed Width Integer Enum with 12 values
index, md_entry_type = dissect.md_entry_type(buffer, index, packet, parent)
-- Pad 7: 7 Byte
index, pad_7 = dissect.pad_7(buffer, index, packet, parent)
return index
end
-- Dissect: Md Trade Entry Grp
dissect.md_trade_entry_grp = function(buffer, offset, packet, parent)
-- Optionally add struct element to protocol tree
if show.md_trade_entry_grp then
local length = size_of.md_trade_entry_grp(buffer, offset)
local range = buffer(offset, length)
local display = display.md_trade_entry_grp(buffer, packet, parent)
parent = parent:add(eurex_derivatives_eobi_t7_v7_1.fields.md_trade_entry_grp, range, display)
end
return dissect.md_trade_entry_grp_fields(buffer, offset, packet, parent)
end
-- Size: No Md Entries
size_of.no_md_entries = 1
-- Display: No Md Entries
display.no_md_entries = function(value)
return "No Md Entries: "..value
end
-- Dissect: No Md Entries
dissect.no_md_entries = function(buffer, offset, packet, parent)
local length = size_of.no_md_entries
local range = buffer(offset, length)
local value = range:le_uint()
local display = display.no_md_entries(value, buffer, offset, packet, parent)
parent:add(eurex_derivatives_eobi_t7_v7_1.fields.no_md_entries, range, value, display)
return offset + length, value
end
-- Size: Pad 2
size_of.pad_2 = 2
-- Display: Pad 2
display.pad_2 = function(value)
return "Pad 2: "..value
end
-- Dissect: Pad 2
dissect.pad_2 = function(buffer, offset, packet, parent)
local length = size_of.pad_2
local range = buffer(offset, length)
local value = range:bytes():tohex(false, " ")
local display = display.pad_2(value, buffer, offset, packet, parent)
parent:add(eurex_derivatives_eobi_t7_v7_1.fields.pad_2, range, value, display)
return offset + length, value
end
-- Size: Trade Condition
size_of.trade_condition = 1
-- Display: Trade Condition
display.trade_condition = function(value)
if value == 1 then
return "Trade Condition: Implied Trade (1)"
end
if value == 107 then
return "Trade Condition: Out Of Sequence (107)"
end
if value == 153 then
return "Trade Condition: Systematic Internalizer (153)"
end
if value == 155 then
return "Trade Condition: Midpoint Price (155)"
end
if value == 156 then
return "Trade Condition: Traded Before Issue Date (156)"
end
return "Trade Condition: Unknown("..value..")"
end
-- Dissect: Trade Condition
dissect.trade_condition = function(buffer, offset, packet, parent)
local length = size_of.trade_condition
local range = buffer(offset, length)
local value = range:le_uint()
local display = display.trade_condition(value, buffer, offset, packet, parent)
parent:add(eurex_derivatives_eobi_t7_v7_1.fields.trade_condition, range, value, display)
return offset + length, value
end
-- Size: Trd Match Id
size_of.trd_match_id = 4
-- Display: Trd Match Id
display.trd_match_id = function(value)
return "Trd Match Id: "..value
end
-- Dissect: Trd Match Id
dissect.trd_match_id = function(buffer, offset, packet, parent)
local length = size_of.trd_match_id
local range = buffer(offset, length)
local value = range:le_uint()
local display = display.trd_match_id(value, buffer, offset, packet, parent)
parent:add(eurex_derivatives_eobi_t7_v7_1.fields.trd_match_id, range, value, display)
return offset + length, value
end
-- Size: Trd Reg Ts Execution Time
size_of.trd_reg_ts_execution_time = 8
-- Display: Trd Reg Ts Execution Time
display.trd_reg_ts_execution_time = function(value)
return "Trd Reg Ts Execution Time: "..value
end
-- Dissect: Trd Reg Ts Execution Time
dissect.trd_reg_ts_execution_time = function(buffer, offset, packet, parent)
local length = size_of.trd_reg_ts_execution_time
local range = buffer(offset, length)
local value = range:le_uint64()
local display = display.trd_reg_ts_execution_time(value, buffer, offset, packet, parent)
parent:add(eurex_derivatives_eobi_t7_v7_1.fields.trd_reg_ts_execution_time, range, value, display)
return offset + length, value
end
-- Size: Last Px
size_of.last_px = 8
-- Display: Last Px
display.last_px = function(value)
local factor = 100000000
return "Last Px: "..value:tonumber()/factor
end
-- Dissect: Last Px
dissect.last_px = function(buffer, offset, packet, parent)
local length = size_of.last_px
local range = buffer(offset, length)
local value = range:le_uint64()
local display = display.last_px(value, buffer, offset, packet, parent)
parent:add(eurex_derivatives_eobi_t7_v7_1.fields.last_px, range, value, display)
return offset + length, value
end
-- Size: Last Qty
size_of.last_qty = 8
-- Display: Last Qty
display.last_qty = function(value)
local factor = 10000
return "Last Qty: "..value:tonumber()/factor
end
-- Dissect: Last Qty
dissect.last_qty = function(buffer, offset, packet, parent)
local length = size_of.last_qty
local range = buffer(offset, length)
local value = range:le_uint64()
local display = display.last_qty(value, buffer, offset, packet, parent)
parent:add(eurex_derivatives_eobi_t7_v7_1.fields.last_qty, range, value, display)
return offset + length, value
end
-- Size: Transact Time
size_of.transact_time = 8
-- Display: Transact Time
display.transact_time = function(value)
return "Transact Time: "..value
end
-- Dissect: Transact Time
dissect.transact_time = function(buffer, offset, packet, parent)
local length = size_of.transact_time
local range = buffer(offset, length)
local value = range:le_uint64()
local display = display.transact_time(value, buffer, offset, packet, parent)
parent:add(eurex_derivatives_eobi_t7_v7_1.fields.transact_time, range, value, display)
return offset + length, value
end
-- Size: Security Id
size_of.security_id = 8
-- Display: Security Id
display.security_id = function(value)
return "Security Id: "..value
end
-- Dissect: Security Id
dissect.security_id = function(buffer, offset, packet, parent)
local length = size_of.security_id
local range = buffer(offset, length)
local value = range:le_int64()
local display = display.security_id(value, buffer, offset, packet, parent)
parent:add(eurex_derivatives_eobi_t7_v7_1.fields.security_id, range, value, display)
return offset + length, value
end
-- Calculate size of: Trade Reversal
size_of.trade_reversal = function(buffer, offset)
local index = 0
index = index + size_of.security_id
index = index + size_of.transact_time
index = index + size_of.last_qty
index = index + size_of.last_px
index = index + size_of.trd_reg_ts_execution_time
index = index + size_of.trd_match_id
index = index + size_of.trade_condition
index = index + size_of.pad_2
index = index + size_of.no_md_entries
-- Calculate field size from count
local md_trade_entry_grp_count = buffer(offset + index - 1, 1):le_uint()
index = index + md_trade_entry_grp_count * 24
return index
end
-- Display: Trade Reversal
display.trade_reversal = function(buffer, offset, size, packet, parent)
return ""
end
-- Dissect Fields: Trade Reversal
dissect.trade_reversal_fields = function(buffer, offset, packet, parent)
local index = offset
-- Security Id: 8 Byte Signed Fixed Width Integer
index, security_id = dissect.security_id(buffer, index, packet, parent)
-- Transact Time: 8 Byte Unsigned Fixed Width Integer
index, transact_time = dissect.transact_time(buffer, index, packet, parent)
-- Last Qty: 8 Byte Unsigned Fixed Width Integer
index, last_qty = dissect.last_qty(buffer, index, packet, parent)
-- Last Px: 8 Byte Unsigned Fixed Width Integer
index, last_px = dissect.last_px(buffer, index, packet, parent)
-- Trd Reg Ts Execution Time: 8 Byte Unsigned Fixed Width Integer
index, trd_reg_ts_execution_time = dissect.trd_reg_ts_execution_time(buffer, index, packet, parent)
-- Trd Match Id: 4 Byte Unsigned Fixed Width Integer
index, trd_match_id = dissect.trd_match_id(buffer, index, packet, parent)
-- Trade Condition: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
index, trade_condition = dissect.trade_condition(buffer, index, packet, parent)
-- Pad 2: 2 Byte
index, pad_2 = dissect.pad_2(buffer, index, packet, parent)
-- No Md Entries: 1 Byte Unsigned Fixed Width Integer
index, no_md_entries = dissect.no_md_entries(buffer, index, packet, parent)
-- Md Trade Entry Grp: Struct of 4 fields
for i = 1, no_md_entries do
index = dissect.md_trade_entry_grp(buffer, index, packet, parent)
end
return index
end
-- Dissect: Trade Reversal
dissect.trade_reversal = function(buffer, offset, packet, parent)
-- Optionally add dynamic struct element to protocol tree
if show.trade_reversal then
local length = size_of.trade_reversal(buffer, offset)
local range = buffer(offset, length)
local display = display.trade_reversal(buffer, packet, parent)
parent = parent:add(eurex_derivatives_eobi_t7_v7_1.fields.trade_reversal, range, display)
end
return dissect.trade_reversal_fields(buffer, offset, packet, parent)
end
-- Size: Algorithmic Trade Indicator
size_of.algorithmic_trade_indicator = 1
-- Display: Algorithmic Trade Indicator
display.algorithmic_trade_indicator = function(value)
if value == 1 then
return "Algorithmic Trade Indicator: Algorithmic Trade (1)"
end
return "Algorithmic Trade Indicator: Unknown("..value..")"
end
-- Dissect: Algorithmic Trade Indicator
dissect.algorithmic_trade_indicator = function(buffer, offset, packet, parent)
local length = size_of.algorithmic_trade_indicator
local range = buffer(offset, length)
local value = range:le_uint()
local display = display.algorithmic_trade_indicator(value, buffer, offset, packet, parent)
parent:add(eurex_derivatives_eobi_t7_v7_1.fields.algorithmic_trade_indicator, range, value, display)
return offset + length, value
end
-- Size: Match Sub Type
size_of.match_sub_type = 1
-- Display: Match Sub Type
display.match_sub_type = function(value)
if value == 1 then
return "Match Sub Type: Opening Auction (1)"
end
if value == 2 then
return "Match Sub Type: Closing Auction (2)"
end
if value == 3 then
return "Match Sub Type: Intraday Auction (3)"
end
if value == 4 then
return "Match Sub Type: Circuit Breaker Auction (4)"
end
if value == 5 then
return "Match Sub Type: Ipo Auction (5)"
end
return "Match Sub Type: Unknown("..value..")"
end
-- Dissect: Match Sub Type
dissect.match_sub_type = function(buffer, offset, packet, parent)
local length = size_of.match_sub_type
local range = buffer(offset, length)
local value = range:le_uint()
local display = display.match_sub_type(value, buffer, offset, packet, parent)
parent:add(eurex_derivatives_eobi_t7_v7_1.fields.match_sub_type, range, value, display)
return offset + length, value
end
-- Size: Match Type
size_of.match_type = 1
-- Display: Match Type
display.match_type = function(value)
if value == 3 then
return "Match Type: Confirmed Trade Report (3)"
end
if value == 5 then
return "Match Type: Cross Auction (5)"
end
if value == 7 then
return "Match Type: Call Auction (7)"
end
if value == 13 then
return "Match Type: Liquidity Improvement Cross (13)"
end
if value == 14 then
return "Match Type: Continuous Auction (14)"
end
return "Match Type: Unknown("..value..")"
end
-- Dissect: Match Type
dissect.match_type = function(buffer, offset, packet, parent)
local length = size_of.match_type
local range = buffer(offset, length)
local value = range:le_uint()
local display = display.match_type(value, buffer, offset, packet, parent)
parent:add(eurex_derivatives_eobi_t7_v7_1.fields.match_type, range, value, display)
return offset + length, value
end
-- Calculate size of: Trade Report
size_of.trade_report = function(buffer, offset)
local index = 0
index = index + size_of.security_id
index = index + size_of.transact_time
index = index + size_of.last_qty
index = index + size_of.last_px
index = index + size_of.trd_match_id
index = index + size_of.match_type
index = index + size_of.match_sub_type
index = index + size_of.algorithmic_trade_indicator
index = index + size_of.trade_condition
return index
end
-- Display: Trade Report
display.trade_report = function(buffer, offset, size, packet, parent)
return ""
end
-- Dissect Fields: Trade Report
dissect.trade_report_fields = function(buffer, offset, packet, parent)
local index = offset
-- Security Id: 8 Byte Signed Fixed Width Integer
index, security_id = dissect.security_id(buffer, index, packet, parent)
-- Transact Time: 8 Byte Unsigned Fixed Width Integer
index, transact_time = dissect.transact_time(buffer, index, packet, parent)
-- Last Qty: 8 Byte Unsigned Fixed Width Integer
index, last_qty = dissect.last_qty(buffer, index, packet, parent)
-- Last Px: 8 Byte Unsigned Fixed Width Integer
index, last_px = dissect.last_px(buffer, index, packet, parent)
-- Trd Match Id: 4 Byte Unsigned Fixed Width Integer
index, trd_match_id = dissect.trd_match_id(buffer, index, packet, parent)
-- Match Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
index, match_type = dissect.match_type(buffer, index, packet, parent)
-- Match Sub Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
index, match_sub_type = dissect.match_sub_type(buffer, index, packet, parent)
-- Algorithmic Trade Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 1 values
index, algorithmic_trade_indicator = dissect.algorithmic_trade_indicator(buffer, index, packet, parent)
-- Trade Condition: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
index, trade_condition = dissect.trade_condition(buffer, index, packet, parent)
return index
end
-- Dissect: Trade Report
dissect.trade_report = function(buffer, offset, packet, parent)
-- Optionally add struct element to protocol tree
if show.trade_report then
local length = size_of.trade_report(buffer, offset)
local range = buffer(offset, length)
local display = display.trade_report(buffer, packet, parent)
parent = parent:add(eurex_derivatives_eobi_t7_v7_1.fields.trade_report, range, display)
end
return dissect.trade_report_fields(buffer, offset, packet, parent)
end
-- Size: Offer Size
size_of.offer_size = 8
-- Display: Offer Size
display.offer_size = function(value)
local factor = 10000
return "Offer Size: "..value:tonumber()/factor
end
-- Dissect: Offer Size
dissect.offer_size = function(buffer, offset, packet, parent)
local length = size_of.offer_size
local range = buffer(offset, length)
local value = range:le_uint64()
local display = display.offer_size(value, buffer, offset, packet, parent)
parent:add(eurex_derivatives_eobi_t7_v7_1.fields.offer_size, range, value, display)
return offset + length, value
end