| | 1 | |
| | 2 | {{{ |
| | 3 | Merge Algorithm |
| | 4 | output: correlated_event queue |
| | 5 | global: event_scenario , MO_win_size |
| | 6 | |
| | 7 | 1. pull the top event |
| | 8 | 2. if OO_events queue == NULL |
| | 9 | 3. new OO_events as event_scenario in event queue |
| | 10 | 4. OO_events inherit event |
| | 11 | 5. while event-queue ≠ NULL |
| | 12 | { |
| | 13 | 6. pull the top event |
| | 14 | 7. if event.timestamp < ( OO_events.end_time + win_size ) |
| | 15 | 8. Search a correlated_event in correlated_event queue that correlated_event.{ IP_dst, |
| | 16 | port_dst,signature } == event.{ IP_dst, port_dst, signature } |
| | 17 | 9. correlated_event _event.endtime max(event.endtime, MO_event.endtime) |
| | 18 | 10. correlated_event.reference append (event.id ) |
| | 19 | 11. correlated_event.IP_src correlated_event. IP_ src ∪ event. IP_ src |
| | 20 | correlated_event t.port_src correlated_event. port_src ∪ event. port_ src |
| | 21 | 12. else |
| | 22 | 13. new OO_events as event_scenario in event queue |
| | 23 | 14. OO_events inherit event |
| | 24 | } |
| | 25 | 15 return correlated_event queue |
| | 26 | |
| | 27 | … |
| | 28 | |
| | 29 | }}} |
| | 30 | |