Add a new plugin test with verbose IO source output

This is mostly for documentation/verification purposes of how the IO loop
currently does draining and when it picks up FD based (non packet) IO
source. For example, it shows that currently FD based sources are processed
fairly delayed and that we now also process two timeout sources that are ready.
This commit is contained in:
Arne Welzel 2023-03-17 20:18:39 +01:00
parent 46c432dc8b
commit 38c4611c7e
5 changed files with 842 additions and 0 deletions

View file

@ -0,0 +1,645 @@
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
0.000000 InitPostScript
0.000000 HookDrainEvents 1
0.0, zeek_init
0.0, event_queue_flush_point, 1
1300475167.096535, network_time_init
1300475167.096535, raw_packet, 1
1300475167.096535, event_queue_flush_point, 2
1300475167.096535 HookDrainEvents 3
1300475167.096535, event_queue_flush_point, 3
1300475167.097012, raw_packet, 2
1300475167.097012, event_queue_flush_point, 4
1300475167.097012 HookDrainEvents 5
1300475167.097012, event_queue_flush_point, 5
1300475167.099816, raw_packet, 3
1300475167.099816, event_queue_flush_point, 6
1300475167.099816 HookDrainEvents 7
1300475167.099816, event_queue_flush_point, 7
1300475167.133969, raw_packet, 4
1300475167.133969, event_queue_flush_point, 8
1300475167.133969 HookDrainEvents 9
1300475167.133969 Firing timeout-source-1
1300475167.133969, event_queue_flush_point, 9
1300475167.134 timeout-source-1 TimeoutSource.Process()
1300475167.961861, raw_packet, 5
1300475167.961861, event_queue_flush_point, 10
1300475167.961861 HookDrainEvents 11
1300475167.961861, event_queue_flush_point, 11
1300475168.652003, raw_packet, 6
1300475168.652003, event_queue_flush_point, 12
1300475168.652003 HookDrainEvents 13
1300475168.652003, event_queue_flush_point, 13
1300475168.713296, raw_packet, 7
1300475168.713296, event_queue_flush_point, 14
1300475168.713296 HookDrainEvents 15
1300475168.713296, event_queue_flush_point, 15
1300475168.713332, raw_packet, 8
1300475168.713332, event_queue_flush_point, 16
1300475168.713332 HookDrainEvents 17
1300475168.713332, event_queue_flush_point, 17
1300475168.724007, raw_packet, 9
1300475168.724007, event_queue_flush_point, 18
1300475168.724007 HookDrainEvents 19
1300475168.724007 Firing timeout-source-2
1300475168.724007 Firing fd-source-1
1300475168.724007, event_queue_flush_point, 19
1300475168.783842, raw_packet, 10
1300475168.783842, event_queue_flush_point, 20
1300475168.784 fd-source-1 FdSource.Process()
1300475168.784 timeout-source-2 TimeoutSource.Process()
1300475168.783842 HookDrainEvents 21
1300475168.783842, event_queue_flush_point, 21
1300475168.783898, raw_packet, 11
1300475168.783898, event_queue_flush_point, 22
1300475168.783898 HookDrainEvents 23
1300475168.783898 Firing fd-source-2
1300475168.783898, event_queue_flush_point, 23
1300475168.78402, raw_packet, 12
1300475168.78402, event_queue_flush_point, 24
1300475168.784020 HookDrainEvents 25
1300475168.78402, event_queue_flush_point, 25
1300475168.843853, raw_packet, 13
1300475168.843853, event_queue_flush_point, 26
1300475168.843853 HookDrainEvents 27
1300475168.843853 Firing timeout-source-1
1300475168.843853, event_queue_flush_point, 27
1300475168.844 timeout-source-1 TimeoutSource.Process()
1300475168.843894, raw_packet, 14
1300475168.843894, event_queue_flush_point, 28
1300475168.843894 HookDrainEvents 29
1300475168.843894, event_queue_flush_point, 29
1300475168.843912, raw_packet, 15
1300475168.843912, event_queue_flush_point, 30
1300475168.843912 HookDrainEvents 31
1300475168.843912, event_queue_flush_point, 31
1300475168.853899, raw_packet, 16
1300475168.853899, event_queue_flush_point, 32
1300475168.853899 HookDrainEvents 33
1300475168.853899, event_queue_flush_point, 33
1300475168.854334, raw_packet, 17
1300475168.854334, event_queue_flush_point, 34
1300475168.854334 HookDrainEvents 35
1300475168.854334, event_queue_flush_point, 35
1300475168.854378, raw_packet, 18
1300475168.854378, event_queue_flush_point, 36
1300475168.854378 HookDrainEvents 37
1300475168.854378, event_queue_flush_point, 37
1300475168.854798, raw_packet, 19
1300475168.854798, event_queue_flush_point, 38
1300475168.854798 HookDrainEvents 39
1300475168.854798, event_queue_flush_point, 39
1300475168.855 fd-source-2 FdSource.Process()
1300475168.854837, raw_packet, 20
1300475168.854837, event_queue_flush_point, 40
1300475168.854837 HookDrainEvents 41
1300475168.854837, event_queue_flush_point, 41
1300475168.855229, raw_packet, 21
1300475168.855229, event_queue_flush_point, 42
1300475168.855229 HookDrainEvents 43
1300475168.855229, event_queue_flush_point, 43
1300475168.855305, raw_packet, 22
1300475168.855305, event_queue_flush_point, 44
1300475168.855305 HookDrainEvents 45
1300475168.855305 Firing timeout-source-1
1300475168.855305, event_queue_flush_point, 45
1300475168.855 timeout-source-1 TimeoutSource.Process()
1300475168.85533, raw_packet, 23
1300475168.85533, event_queue_flush_point, 46
1300475168.855330 HookDrainEvents 47
1300475168.85533, event_queue_flush_point, 47
1300475168.857956, raw_packet, 24
1300475168.857956, event_queue_flush_point, 48
1300475168.857956 HookDrainEvents 49
1300475168.857956, event_queue_flush_point, 49
1300475168.858273, raw_packet, 25
1300475168.858273, event_queue_flush_point, 50
1300475168.858273 HookDrainEvents 51
1300475168.858273, event_queue_flush_point, 51
1300475168.858306, raw_packet, 26
1300475168.858306, event_queue_flush_point, 52
1300475168.858306 HookDrainEvents 53
1300475168.858306, event_queue_flush_point, 53
1300475168.858649, raw_packet, 27
1300475168.858649, event_queue_flush_point, 54
1300475168.858649 HookDrainEvents 55
1300475168.858649, event_queue_flush_point, 55
1300475168.858713, raw_packet, 28
1300475168.858713, event_queue_flush_point, 56
1300475168.858713 HookDrainEvents 57
1300475168.858713 Firing timeout-source-2
1300475168.858713 Firing fd-source-1
1300475168.858713, event_queue_flush_point, 57
1300475168.859 timeout-source-2 TimeoutSource.Process()
1300475168.859088, raw_packet, 29
1300475168.859088, event_queue_flush_point, 58
1300475168.859088 HookDrainEvents 59
1300475168.859088, event_queue_flush_point, 59
1300475168.859 fd-source-1 FdSource.Process()
1300475168.859163, raw_packet, 30
1300475168.859163, event_queue_flush_point, 60
1300475168.859163 HookDrainEvents 61
1300475168.859163, event_queue_flush_point, 61
1300475168.891644, raw_packet, 31
1300475168.891644, event_queue_flush_point, 62
1300475168.891644 HookDrainEvents 63
1300475168.891644 Firing timeout-source-1
1300475168.891644, event_queue_flush_point, 63
1300475168.892 timeout-source-1 TimeoutSource.Process()
1300475168.891983, raw_packet, 32
1300475168.891983, event_queue_flush_point, 64
1300475168.891983 HookDrainEvents 65
1300475168.891983, event_queue_flush_point, 65
1300475168.892037, raw_packet, 33
1300475168.892037, event_queue_flush_point, 66
1300475168.892037 HookDrainEvents 67
1300475168.892037, event_queue_flush_point, 67
1300475168.892372, raw_packet, 34
1300475168.892372, event_queue_flush_point, 68
1300475168.892372 HookDrainEvents 69
1300475168.892372 Firing fd-source-2
1300475168.892372, event_queue_flush_point, 69
1300475168.892414, raw_packet, 35
1300475168.892414, event_queue_flush_point, 70
1300475168.892414 HookDrainEvents 71
1300475168.892414, event_queue_flush_point, 71
1300475168.892835, raw_packet, 36
1300475168.892835, event_queue_flush_point, 72
1300475168.892835 HookDrainEvents 73
1300475168.892835, event_queue_flush_point, 73
1300475168.892913, raw_packet, 37
1300475168.892913, event_queue_flush_point, 74
1300475168.892913 HookDrainEvents 75
1300475168.892913, event_queue_flush_point, 75
1300475168.892936, raw_packet, 38
1300475168.892936, event_queue_flush_point, 76
1300475168.892936 HookDrainEvents 77
1300475168.892936, event_queue_flush_point, 77
1300475168.893988, raw_packet, 39
1300475168.893988, event_queue_flush_point, 78
1300475168.893988 HookDrainEvents 79
1300475168.893988, event_queue_flush_point, 79
1300475168.894 fd-source-2 FdSource.Process()
1300475168.894372, raw_packet, 40
1300475168.894372, event_queue_flush_point, 80
1300475168.894372 HookDrainEvents 81
1300475168.894372 Firing timeout-source-1
1300475168.894372, event_queue_flush_point, 81
1300475168.894 timeout-source-1 TimeoutSource.Process()
1300475168.894422, raw_packet, 41
1300475168.894422, event_queue_flush_point, 82
1300475168.894422 HookDrainEvents 83
1300475168.894422, event_queue_flush_point, 83
1300475168.894739, raw_packet, 42
1300475168.894739, event_queue_flush_point, 84
1300475168.894739 HookDrainEvents 85
1300475168.894739, event_queue_flush_point, 85
1300475168.894787, raw_packet, 43
1300475168.894787, event_queue_flush_point, 86
1300475168.894787 HookDrainEvents 87
1300475168.894787, event_queue_flush_point, 87
1300475168.89521, raw_packet, 44
1300475168.89521, event_queue_flush_point, 88
1300475168.895210 HookDrainEvents 89
1300475168.89521, event_queue_flush_point, 89
1300475168.895267, raw_packet, 45
1300475168.895267, event_queue_flush_point, 90
1300475168.895267 HookDrainEvents 91
1300475168.895267, event_queue_flush_point, 91
1300475168.901749, raw_packet, 46
1300475168.901749, event_queue_flush_point, 92
1300475168.901749 HookDrainEvents 93
1300475168.901749, event_queue_flush_point, 93
1300475168.902151, raw_packet, 47
1300475168.902151, event_queue_flush_point, 94
1300475168.902151 HookDrainEvents 95
1300475168.902151 Firing timeout-source-2
1300475168.902151 Firing fd-source-1
1300475168.902151, event_queue_flush_point, 95
1300475168.902 timeout-source-2 TimeoutSource.Process()
1300475168.902195, raw_packet, 48
1300475168.902195, event_queue_flush_point, 96
1300475168.902195 HookDrainEvents 97
1300475168.902195, event_queue_flush_point, 97
1300475168.902569, raw_packet, 49
1300475168.902569, event_queue_flush_point, 98
1300475168.902569 HookDrainEvents 99
1300475168.902569 Firing timeout-source-1
1300475168.902569, event_queue_flush_point, 99
1300475168.902635, raw_packet, 50
1300475168.902635, event_queue_flush_point, 100
1300475168.903 fd-source-1 FdSource.Process()
1300475168.903 timeout-source-1 TimeoutSource.Process()
1300475168.902635 HookDrainEvents 101
1300475168.902635, event_queue_flush_point, 101
1300475168.91594, raw_packet, 51
1300475168.91594, event_queue_flush_point, 102
1300475168.915940 HookDrainEvents 103
1300475168.91594, event_queue_flush_point, 103
1300475168.915959, raw_packet, 52
1300475168.915959, event_queue_flush_point, 104
1300475168.915959 HookDrainEvents 105
1300475168.915959, event_queue_flush_point, 105
1300475168.916018, raw_packet, 53
1300475168.916018, event_queue_flush_point, 106
1300475168.916018 HookDrainEvents 107
1300475168.916018, event_queue_flush_point, 107
1300475168.916118, raw_packet, 54
1300475168.916118, event_queue_flush_point, 108
1300475168.916118 HookDrainEvents 109
1300475168.916118, event_queue_flush_point, 109
1300475168.916128, raw_packet, 55
1300475168.916128, event_queue_flush_point, 110
1300475168.916128 HookDrainEvents 111
1300475168.916128, event_queue_flush_point, 111
1300475168.916183, raw_packet, 56
1300475168.916183, event_queue_flush_point, 112
1300475168.916183 HookDrainEvents 113
1300475168.916183, event_queue_flush_point, 113
1300475168.918295, raw_packet, 57
1300475168.918295, event_queue_flush_point, 114
1300475168.918295 HookDrainEvents 115
1300475168.918295 Firing fd-source-2
1300475168.918295, event_queue_flush_point, 115
1300475168.918305, raw_packet, 58
1300475168.918305, event_queue_flush_point, 116
1300475168.918305 HookDrainEvents 117
1300475168.918305 Firing timeout-source-1
1300475168.918305, event_queue_flush_point, 117
1300475168.918 timeout-source-1 TimeoutSource.Process()
1300475168.918358, raw_packet, 59
1300475168.918358, event_queue_flush_point, 118
1300475168.918358 HookDrainEvents 119
1300475168.918358, event_queue_flush_point, 119
1300475168.918 fd-source-2 FdSource.Process()
1300475168.952193, raw_packet, 60
1300475168.952193, event_queue_flush_point, 120
1300475168.952193 HookDrainEvents 121
1300475168.952193, event_queue_flush_point, 121
1300475168.952222, raw_packet, 61
1300475168.952222, event_queue_flush_point, 122
1300475168.952222 HookDrainEvents 123
1300475168.952222, event_queue_flush_point, 123
1300475168.952228, raw_packet, 62
1300475168.952228, event_queue_flush_point, 124
1300475168.952228 HookDrainEvents 125
1300475168.952228, event_queue_flush_point, 125
1300475168.952234, raw_packet, 63
1300475168.952234, event_queue_flush_point, 126
1300475168.952234 HookDrainEvents 127
1300475168.952234, event_queue_flush_point, 127
1300475168.952296, raw_packet, 64
1300475168.952296, event_queue_flush_point, 128
1300475168.952296 HookDrainEvents 129
1300475168.952296, event_queue_flush_point, 129
1300475168.952307, raw_packet, 65
1300475168.952307, event_queue_flush_point, 130
1300475168.952307 HookDrainEvents 131
1300475168.952307, event_queue_flush_point, 131
1300475168.954761, raw_packet, 66
1300475168.954761, event_queue_flush_point, 132
1300475168.954761 HookDrainEvents 133
1300475168.954761 Firing timeout-source-2
1300475168.954761 Firing fd-source-1
1300475168.954761, event_queue_flush_point, 133
1300475168.955 timeout-source-2 TimeoutSource.Process()
1300475168.95477, raw_packet, 67
1300475168.95477, event_queue_flush_point, 134
1300475168.954770 HookDrainEvents 135
1300475168.954770 Firing timeout-source-1
1300475168.95477, event_queue_flush_point, 135
1300475168.955 timeout-source-1 TimeoutSource.Process()
1300475168.95482, raw_packet, 68
1300475168.95482, event_queue_flush_point, 136
1300475168.954820 HookDrainEvents 137
1300475168.95482, event_queue_flush_point, 137
1300475168.962628, raw_packet, 69
1300475168.962628, event_queue_flush_point, 138
1300475168.962628 HookDrainEvents 139
1300475168.962628, event_queue_flush_point, 139
1300475168.963 fd-source-1 FdSource.Process()
1300475168.962642, raw_packet, 70
1300475168.962642, event_queue_flush_point, 140
1300475168.962642 HookDrainEvents 141
1300475168.962642, event_queue_flush_point, 141
1300475168.962687, raw_packet, 71
1300475168.962687, event_queue_flush_point, 142
1300475168.962687 HookDrainEvents 143
1300475168.962687, event_queue_flush_point, 143
1300475168.975308, raw_packet, 72
1300475168.975308, event_queue_flush_point, 144
1300475168.975308 HookDrainEvents 145
1300475168.975308, event_queue_flush_point, 145
1300475168.975791, raw_packet, 73
1300475168.975791, event_queue_flush_point, 146
1300475168.975791 HookDrainEvents 147
1300475168.975791, event_queue_flush_point, 147
1300475168.9758, raw_packet, 74
1300475168.9758, event_queue_flush_point, 148
1300475168.975800 HookDrainEvents 149
1300475168.9758, event_queue_flush_point, 149
1300475168.975807, raw_packet, 75
1300475168.975807, event_queue_flush_point, 150
1300475168.975807 HookDrainEvents 151
1300475168.975807, event_queue_flush_point, 151
1300475168.975934, raw_packet, 76
1300475168.975934, event_queue_flush_point, 152
1300475168.975934 HookDrainEvents 153
1300475168.975934 Firing timeout-source-1
1300475168.975934, event_queue_flush_point, 153
1300475168.976 timeout-source-1 TimeoutSource.Process()
1300475168.976327, raw_packet, 77
1300475168.976327, event_queue_flush_point, 154
1300475168.976327 HookDrainEvents 155
1300475168.976327, event_queue_flush_point, 155
1300475168.976334, raw_packet, 78
1300475168.976334, event_queue_flush_point, 156
1300475168.976334 HookDrainEvents 157
1300475168.976334, event_queue_flush_point, 157
1300475168.976436, raw_packet, 79
1300475168.976436, event_queue_flush_point, 158
1300475168.976436 HookDrainEvents 159
1300475168.976436, event_queue_flush_point, 159
1300475168.978186, raw_packet, 80
1300475168.978186, event_queue_flush_point, 160
1300475168.978186 HookDrainEvents 161
1300475168.978186 Firing fd-source-2
1300475168.978186, event_queue_flush_point, 161
1300475168.97916, raw_packet, 81
1300475168.97916, event_queue_flush_point, 162
1300475168.979160 HookDrainEvents 163
1300475168.97916, event_queue_flush_point, 163
1300475168.979166, raw_packet, 82
1300475168.979166, event_queue_flush_point, 164
1300475168.979166 HookDrainEvents 165
1300475168.979166, event_queue_flush_point, 165
1300475168.979264, raw_packet, 83
1300475168.979264, event_queue_flush_point, 166
1300475168.979264 HookDrainEvents 167
1300475168.979264, event_queue_flush_point, 167
1300475169.01161, raw_packet, 84
1300475169.01161, event_queue_flush_point, 168
1300475169.011610 HookDrainEvents 169
1300475169.01161, event_queue_flush_point, 169
1300475169.011631, raw_packet, 85
1300475169.011631, event_queue_flush_point, 170
1300475169.011631 HookDrainEvents 171
1300475169.011631 Firing timeout-source-1
1300475169.011631 Firing timeout-source-2
1300475169.011631 Firing fd-source-1
1300475169.011631, event_queue_flush_point, 171
1300475169.012 timeout-source-1 TimeoutSource.Process()
1300475169.012 timeout-source-2 TimeoutSource.Process()
1300475169.012666, raw_packet, 86
1300475169.012666, event_queue_flush_point, 172
1300475169.012666 HookDrainEvents 173
1300475169.012666, event_queue_flush_point, 173
1300475169.012676, raw_packet, 87
1300475169.012676, event_queue_flush_point, 174
1300475169.012676 HookDrainEvents 175
1300475169.012676, event_queue_flush_point, 175
1300475169.01273, raw_packet, 88
1300475169.01273, event_queue_flush_point, 176
1300475169.012730 HookDrainEvents 177
1300475169.01273, event_queue_flush_point, 177
1300475169.012737, raw_packet, 89
1300475169.012737, event_queue_flush_point, 178
1300475169.012737 HookDrainEvents 179
1300475169.012737, event_queue_flush_point, 179
1300475169.013 fd-source-2 FdSource.Process()
1300475169.013 fd-source-1 FdSource.Process()
1300475169.014504, raw_packet, 90
1300475169.014504, event_queue_flush_point, 180
1300475169.014504 HookDrainEvents 181
1300475169.014504, event_queue_flush_point, 181
1300475169.014593, raw_packet, 91
1300475169.014593, event_queue_flush_point, 182
1300475169.014593 HookDrainEvents 183
1300475169.014593, event_queue_flush_point, 183
1300475169.014619, raw_packet, 92
1300475169.014619, event_queue_flush_point, 184
1300475169.014619 HookDrainEvents 185
1300475169.014619, event_queue_flush_point, 185
1300475169.01486, raw_packet, 93
1300475169.01486, event_queue_flush_point, 186
1300475169.014860 HookDrainEvents 187
1300475169.01486, event_queue_flush_point, 187
1300475169.014865, raw_packet, 94
1300475169.014865, event_queue_flush_point, 188
1300475169.014865 HookDrainEvents 189
1300475169.014865 Firing timeout-source-1
1300475169.014865, event_queue_flush_point, 189
1300475169.015 timeout-source-1 TimeoutSource.Process()
1300475169.014927, raw_packet, 95
1300475169.014927, event_queue_flush_point, 190
1300475169.014927 HookDrainEvents 191
1300475169.014927, event_queue_flush_point, 191
1300475169.021939, raw_packet, 96
1300475169.021939, event_queue_flush_point, 192
1300475169.021939 HookDrainEvents 193
1300475169.021939, event_queue_flush_point, 193
1300475169.022665, raw_packet, 97
1300475169.022665, event_queue_flush_point, 194
1300475169.022665 HookDrainEvents 195
1300475169.022665, event_queue_flush_point, 195
1300475169.022676, raw_packet, 98
1300475169.022676, event_queue_flush_point, 196
1300475169.022676 HookDrainEvents 197
1300475169.022676, event_queue_flush_point, 197
1300475169.036294, raw_packet, 99
1300475169.036294, event_queue_flush_point, 198
1300475169.036294 HookDrainEvents 199
1300475169.036294, event_queue_flush_point, 199
1300475169.036798, raw_packet, 100
1300475169.036798, event_queue_flush_point, 200
1300475169.036798 HookDrainEvents 201
1300475169.036798, event_queue_flush_point, 201
1300475169.039923, raw_packet, 101
1300475169.039923, event_queue_flush_point, 202
1300475169.039923 HookDrainEvents 203
1300475169.039923, event_queue_flush_point, 203
1300475169.073806, raw_packet, 102
1300475169.073806, event_queue_flush_point, 204
1300475169.073806 HookDrainEvents 205
1300475169.073806, event_queue_flush_point, 205
1300475169.074793, raw_packet, 103
1300475169.074793, event_queue_flush_point, 206
1300475169.074793 HookDrainEvents 207
1300475169.074793 Firing timeout-source-1
1300475169.074793 Firing fd-source-2
1300475169.074793, event_queue_flush_point, 207
1300475169.075 timeout-source-1 TimeoutSource.Process()
1300475169.074938, raw_packet, 104
1300475169.074938, event_queue_flush_point, 208
1300475169.074938 HookDrainEvents 209
1300475169.074938 Firing timeout-source-2
1300475169.074938 Firing fd-source-1
1300475169.074938, event_queue_flush_point, 209
1300475169.075 timeout-source-2 TimeoutSource.Process()
1300475169.07505, raw_packet, 105
1300475169.07505, event_queue_flush_point, 210
1300475169.075050 HookDrainEvents 211
1300475169.07505, event_queue_flush_point, 211
1300475169.075056, raw_packet, 106
1300475169.075056, event_queue_flush_point, 212
1300475169.075056 HookDrainEvents 213
1300475169.075056, event_queue_flush_point, 213
1300475169.075065, raw_packet, 107
1300475169.075065, event_queue_flush_point, 214
1300475169.075065 HookDrainEvents 215
1300475169.075065, event_queue_flush_point, 215
1300475169.113874, raw_packet, 108
1300475169.113874, event_queue_flush_point, 216
1300475169.113874 HookDrainEvents 217
1300475169.113874, event_queue_flush_point, 217
1300475169.116347, raw_packet, 109
1300475169.116347, event_queue_flush_point, 218
1300475169.116347 HookDrainEvents 219
1300475169.116347, event_queue_flush_point, 219
1300475169.116 fd-source-2 FdSource.Process()
1300475169.116 fd-source-1 FdSource.Process()
1300475169.122539, raw_packet, 110
1300475169.122539, event_queue_flush_point, 220
1300475169.122539 HookDrainEvents 221
1300475169.122539, event_queue_flush_point, 221
1300475169.122551, raw_packet, 111
1300475169.122551, event_queue_flush_point, 222
1300475169.122551 HookDrainEvents 223
1300475169.122551, event_queue_flush_point, 223
1300475169.134549, raw_packet, 112
1300475169.134549, event_queue_flush_point, 224
1300475169.134549 HookDrainEvents 225
1300475169.134549 Firing timeout-source-1
1300475169.134549, event_queue_flush_point, 225
1300475169.135 timeout-source-1 TimeoutSource.Process()
1300475169.780331, raw_packet, 113
1300475169.780331, event_queue_flush_point, 226
1300475169.780331 HookDrainEvents 227
1300475169.780331, event_queue_flush_point, 227
1300475169.899438, raw_packet, 114
1300475169.899438, event_queue_flush_point, 228
1300475169.899438 HookDrainEvents 229
1300475169.899438, event_queue_flush_point, 229
1300475170.369722, raw_packet, 115
1300475170.369722, event_queue_flush_point, 230
1300475170.369722 HookDrainEvents 231
1300475170.369722, event_queue_flush_point, 231
1300475170.8115, raw_packet, 116
1300475170.8115, event_queue_flush_point, 232
1300475170.811500 HookDrainEvents 233
1300475170.8115, event_queue_flush_point, 233
1300475170.862384, raw_packet, 117
1300475170.862384, event_queue_flush_point, 234
1300475170.862384 HookDrainEvents 235
1300475170.862384, event_queue_flush_point, 235
1300475171.134933, raw_packet, 118
1300475171.134933, event_queue_flush_point, 236
1300475171.134933 HookDrainEvents 237
1300475171.134933, event_queue_flush_point, 237
1300475171.612255, raw_packet, 119
1300475171.612255, event_queue_flush_point, 238
1300475171.612255 HookDrainEvents 239
1300475171.612255, event_queue_flush_point, 239
1300475171.675372, raw_packet, 120
1300475171.675372, event_queue_flush_point, 240
1300475171.675372 HookDrainEvents 241
1300475171.675372, event_queue_flush_point, 241
1300475171.677081, raw_packet, 121
1300475171.677081, event_queue_flush_point, 242
1300475171.677081 HookDrainEvents 243
1300475171.677081 Firing timeout-source-1
1300475171.677081, event_queue_flush_point, 243
1300475171.677 timeout-source-1 TimeoutSource.Process()
1300475171.775468, raw_packet, 122
1300475171.775468, event_queue_flush_point, 244
1300475171.775468 HookDrainEvents 245
1300475171.775468, event_queue_flush_point, 245
1300475171.777102, raw_packet, 123
1300475171.777102, event_queue_flush_point, 246
1300475171.777102 HookDrainEvents 247
1300475171.777102 Firing timeout-source-2
1300475171.777102 Firing fd-source-1
1300475171.777102, event_queue_flush_point, 247
1300475171.777 timeout-source-2 TimeoutSource.Process()
1300475171.88628, raw_packet, 124
1300475171.88628, event_queue_flush_point, 248
1300475171.886280 HookDrainEvents 249
1300475171.88628, event_queue_flush_point, 249
1300475171.975785, raw_packet, 125
1300475171.975785, event_queue_flush_point, 250
1300475171.975785 HookDrainEvents 251
1300475171.975785, event_queue_flush_point, 251
1300475172.362244, raw_packet, 126
1300475172.362244, event_queue_flush_point, 252
1300475172.362244 HookDrainEvents 253
1300475172.362244 Firing fd-source-2
1300475172.362244, event_queue_flush_point, 253
1300475172.725281, raw_packet, 127
1300475172.725281, event_queue_flush_point, 254
1300475172.725281 HookDrainEvents 255
1300475172.725281, event_queue_flush_point, 255
1300475172.734686, raw_packet, 128
1300475172.734686, event_queue_flush_point, 256
1300475172.734686 HookDrainEvents 257
1300475172.734686, event_queue_flush_point, 257
1300475173.116749, raw_packet, 129
1300475173.116749, event_queue_flush_point, 258
1300475173.116749 HookDrainEvents 259
1300475173.116749, event_queue_flush_point, 259
1300475173.117 fd-source-1 FdSource.Process()
1300475173.117 fd-source-2 FdSource.Process()
1300475173.117362, raw_packet, 130
1300475173.117362, event_queue_flush_point, 260
1300475173.117362 HookDrainEvents 261
1300475173.117362 Firing timeout-source-1
1300475173.117362, event_queue_flush_point, 261
1300475173.117 timeout-source-1 TimeoutSource.Process()
1300475173.140148, raw_packet, 131
1300475173.140148, event_queue_flush_point, 262
1300475173.140148 HookDrainEvents 263
1300475173.140148, event_queue_flush_point, 263
1300475173.153679, raw_packet, 132
1300475173.153679, event_queue_flush_point, 264
1300475173.153679 HookDrainEvents 265
1300475173.153679, event_queue_flush_point, 265
1300475173.21655, raw_packet, 133
1300475173.21655, event_queue_flush_point, 266
1300475173.216550 HookDrainEvents 267
1300475173.21655, event_queue_flush_point, 267
1300475173.217211, raw_packet, 134
1300475173.217211, event_queue_flush_point, 268
1300475173.217211 HookDrainEvents 269
1300475173.217211, event_queue_flush_point, 269
1300475173.416717, raw_packet, 135
1300475173.416717, event_queue_flush_point, 270
1300475173.416717 HookDrainEvents 271
1300475173.416717, event_queue_flush_point, 271
1300475173.475401, raw_packet, 136
1300475173.475401, event_queue_flush_point, 272
1300475173.475401 HookDrainEvents 273
1300475173.475401, event_queue_flush_point, 273
1300475173.475401 HookDrainEvents 274
1300475173.475401, event_queue_flush_point, 274
1300475173.475401 HookDrainEvents 275
1300475173.475401, event_queue_flush_point, 275
1300475173.475401 HookDrainEvents 276
1300475173.475401 Firing fd-source-2
1300475173.475401, event_queue_flush_point, 276
1300475173.475401, net_done, 1300475173.475401
1300475173.475401 HookDrainEvents 277
1300475173.475401, event_queue_flush_point, 277
1300475173.475401 HookDrainEvents 278
1300475173.475401, event_queue_flush_point, 278
1300475173.475401 HookDrainEvents 279
1300475173.475401 Firing timeout-source-1
1300475173.475401, event_queue_flush_point, 279
1300475173.475401 HookDrainEvents 280
1300475173.475401, event_queue_flush_point, 280
1300475173.475401 HookDrainEvents 281
1300475173.475401, zeek_done
1300475173.475401, flushes, 280, packets, 136
1300475173.475401, event_queue_flush_point, 281
1300475173.475401 HookDrainEvents 282
1300475173.475401, event_queue_flush_point, 282
1300475173.475401 HookDrainEvents 283
1300475173.475401, event_queue_flush_point, 283

View file

@ -0,0 +1,45 @@
# @TEST-EXEC: ${DIST}/auxil/zeek-aux/plugin-support/init-plugin -u . Demo Iosource
# @TEST-EXEC: cp -r %DIR/iosource-plugin/* .
# @TEST-EXEC: ./configure --zeek-dist=${DIST} && make
#
# @TEST-EXEC: ZEEK_PLUGIN_PATH=`pwd` zeek -Bmain-loop -b %INPUT -r $TRACES/wikipedia.trace > output
# @TEST-EXEC: TEST_DIFF_CANONIFIER= btest-diff output
@load-plugin Demo::Iosource
global flushes = 0;
global packets = 0;
# Default is 100 for pcaps, but that only triggers a single Poll() when
# reading wikipedia.trace. Tune it down a bit so Process on the FdSources
# is called more often.
redef io_poll_interval_default = 10;
event zeek_init() {
print network_time(), "zeek_init";
}
event network_time_init() {
print network_time(), "network_time_init";
}
event raw_packet(p: raw_pkt_hdr)
{
++packets;
print network_time(), "raw_packet", packets;
}
event event_queue_flush_point() {
++flushes;
print network_time(), "event_queue_flush_point", flushes;
}
event net_done(ts: time) {
print network_time(), "net_done", ts;
}
event zeek_done() {
print network_time(), "zeek_done";
print network_time(), "flushes", flushes, "packets", packets;
}

View file

@ -0,0 +1,69 @@
#include "Plugin.h"
namespace zeek::run_state
{
extern double processing_start_time;
}
namespace btest::plugin::Demo_Iosource
{
Plugin plugin;
}
using namespace btest::plugin::Demo_Iosource;
zeek::plugin::Configuration Plugin::Configure()
{
EnableHook(zeek::plugin::HOOK_DRAIN_EVENTS, 0);
zeek::plugin::Configuration config;
config.name = "Demo::Iosource";
config.description = "This is a iosource";
config.version.major = 1;
config.version.minor = 0;
config.version.patch = 0;
return config;
}
void Plugin::InitPostScript()
{
std::fprintf(stdout, "%.6f InitPostScript\n", zeek::run_state::network_time);
ts1 = new TimeoutSource("timeout-source-1");
ts2 = new TimeoutSource("timeout-source-2");
fd1 = new FdSource("fd-source-1");
fd2 = new FdSource("fd-source-2");
}
void Plugin::HookDrainEvents()
{
++round;
if ( zeek::run_state::processing_start_time != 0.0 ) // ignore drains from dispatch_packet
return;
//
std::fprintf(stdout, "%.6f HookDrainEvents %d\n", zeek::run_state::network_time, round);
if ( (round % 9) == 0 )
{
std::fprintf(stdout, "%.6f Firing %s\n", zeek::run_state::network_time, ts1->Tag());
ts1->Fire();
}
if ( (round % 19) == 0 )
{
std::fprintf(stdout, "%.6f Firing %s\n", zeek::run_state::network_time, ts2->Tag());
ts2->Fire();
}
if ( (round % 19) == 0 )
{
std::fprintf(stdout, "%.6f Firing %s\n", zeek::run_state::network_time, fd1->Tag());
fd1->Fire();
}
if ( (round % 23) == 0 )
{
std::fprintf(stdout, "%.6f Firing %s\n", zeek::run_state::network_time, fd2->Tag());
fd2->Fire();
}
}

View file

@ -0,0 +1,83 @@
#pragma once
#include <zeek/Flare.h>
#include <zeek/plugin/Plugin.h>
#include <string>
#include <string_view>
#include "zeek/iosource/Manager.h"
namespace btest::plugin::Demo_Iosource
{
class TimeoutSource : public zeek::iosource::IOSource
{
public:
TimeoutSource(std::string_view ident) : ident(ident)
{
zeek::iosource_mgr->Register(this, true /* don't count */);
};
void Process() override
{
std::fprintf(stdout, "%.3f %s TimeoutSource.Process()\n", zeek::run_state::network_time,
ident.c_str());
on = false;
}
double GetNextTimeout() override { return on ? 0.0 : 0.1; };
const char* Tag() override { return ident.c_str(); };
void Fire() { on = true; }
private:
std::string ident;
bool on = false;
};
class FdSource : public zeek::iosource::IOSource
{
public:
FdSource(std::string_view ident) : ident(ident)
{
zeek::iosource_mgr->Register(this, true /* don't count */);
if ( ! zeek::iosource_mgr->RegisterFd(flare.FD(), this) )
zeek::reporter->FatalError("Failed to register flare FD");
}
void Process() override
{
std::fprintf(stdout, "%.3f %s FdSource.Process()\n", zeek::run_state::network_time,
ident.c_str());
flare.Extinguish();
}
double GetNextTimeout() override { return -1; }
const char* Tag() override { return ident.c_str(); };
void Fire() { flare.Fire(); }
private:
std::string ident;
zeek::detail::Flare flare;
};
class Plugin : public zeek::plugin::Plugin
{
protected:
zeek::plugin::Configuration Configure() override;
void InitPostScript() override;
void HookDrainEvents() override;
private:
int round = 0;
TimeoutSource* ts1 = nullptr;
TimeoutSource* ts2 = nullptr;
FdSource* fd1 = nullptr;
FdSource* fd2 = nullptr;
};
extern Plugin plugin;
}