From 988e266a2a3b3a1a3a04d1f4ee6e81a1b2128413 Mon Sep 17 00:00:00 2001 From: Glen Gibb Date: Thu, 17 Dec 2009 17:00:36 -0800 Subject: [PATCH] spec: add PDF version of packet flow chart --- doc/of-spec/packet_flow_flowchart.pdf | Bin 0 -> 27614 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/of-spec/packet_flow_flowchart.pdf diff --git a/doc/of-spec/packet_flow_flowchart.pdf b/doc/of-spec/packet_flow_flowchart.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0888d15d13a6af270e82d23d13acce883b9b52ae GIT binary patch literal 27614 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