<｜begin▁of▁sentence｜>### Instruction:
In the context of optimizing the operational pathways within a nuclear power plant's control system, we have a directed network that models the flow of command signals between nodes, represented by control units. The graph is encoded within the "control_system_topology.gml" file, and it includes a particular sequence of control unit interactions: [(0, 1), (1, 2), (2, 1)]. To evaluate potential cascade effects in signal processing or to preemptively troubleshoot routing redundancies, we need to simulate the signal propagation through this network.

Can you demonstrate a method to traverse this directed network starting from the control unit labeled '0,' following a depth-first-search algorithm? Moreover, during this traversal, each step should be categorized by its interaction type, which will help us to establish a clear operational sequence and recognize any system vulnerabilities. Please maintain the abstract representation of the network's edge set for consistent testing across multiple scenarios in our simulations.
### Response:
import networkx as nx
from pprint import pprint

# Create a directed graph
G = nx.DiGraph([(0, 1), (1, 2), (2, 1)])

# Use dfs_labeled_edges to get the edges labeled by type from a DFS traversal
# starting at source node 0
labeled_edges = list(nx.dfs_labeled_edges(G, source=0))
pprint(labeled_edges)
<|EOT|>
