# igbe/dnp3-dataset-plus-snortrules architecture

> Architecture diagram of the GitHub repository igbe/dnp3-dataset-plus-snortrules, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/igbe/dnp3-dataset-plus-snortrules
- Repository: https://github.com/igbe/dnp3-dataset-plus-snortrules

## Overview

This repository is a small DNP3 research artifact bundle, not an executable application. Its documented workflow is a packet capture used to generate an extracted CSV dataset; it also provides Snort IDS rules for detecting attacks. The README requires citing the associated paper when using the PCAP or CSV. No source excerpts are available, so relationships are limited to those explicitly documented.

Main entry points: [`dnp3dataset_capture.pcap`](https://github.com/igbe/dnp3-dataset-plus-snortrules/blob/master/dnp3dataset_capture.pcap) (DNP3 capture), [`extracted_dataset.csv`](https://github.com/igbe/dnp3-dataset-plus-snortrules/blob/master/extracted_dataset.csv) (Extracted dataset), [`local.rules`](https://github.com/igbe/dnp3-dataset-plus-snortrules/blob/master/local.rules) (Snort rules)

## Diagram (Mermaid)

```mermaid
flowchart TD

node_pcap["DNP3 capture"]
node_dataset["Extracted dataset"]
node_rules["Snort rules<br/>[local.rules]"]
node_snort["Snort IDS"]

node_pcap -->|"generates"| node_dataset
node_snort -->|"uses for detection"| node_rules

click node_pcap "https://github.com/igbe/dnp3-dataset-plus-snortrules/blob/master/dnp3dataset_capture.pcap"
click node_dataset "https://github.com/igbe/dnp3-dataset-plus-snortrules/blob/master/extracted_dataset.csv"
click node_rules "https://github.com/igbe/dnp3-dataset-plus-snortrules/blob/master/local.rules"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_pcap,node_dataset,node_rules toneTeal
class node_snort toneIndigo
```

## Components

### Other components

- [DNP3 capture](https://github.com/igbe/dnp3-dataset-plus-snortrules/blob/master/dnp3dataset_capture.pcap): `dnp3dataset_capture.pcap`
- [Extracted dataset](https://github.com/igbe/dnp3-dataset-plus-snortrules/blob/master/extracted_dataset.csv): `extracted_dataset.csv`
- [Snort rules](https://github.com/igbe/dnp3-dataset-plus-snortrules/blob/master/local.rules): `local.rules`
- **Snort IDS**

## Connections

- DNP3 capture → Extracted dataset: generates (evidence: `README.md`)
- Snort IDS → Snort rules: uses for detection (evidence: `README.md`)
