# This file is part of SCIgen.
#
# SCIgen is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# SCIgen is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with SCIgen; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
GRAPHVIZ {
LAYOUT
size="3,3";
NODES
EDGES
END
}
LAYOUT {
GRAPH_DIR {
}
END }
NUM_NODES 2
NUM_NODES 3
NUM_NODES 4
NUM_NODES 5
NUM_NODES 6
NUM_NODES 7
NUM_NODES 8
NUM_NODES 9
NUM_NODES 10
NODES_1 NEW_NODE;
NODES_2 {
NEW_NODE;
NODES_1
}
NODES_3 {
NEW_NODE;
NODES_2
}
NODES_4 {
NEW_NODE;
NODES_3
}
NODES_5 {
NEW_NODE;
NODES_4
}
NODES_6 {
NEW_NODE;
NODES_5
}
NODES_7 {
NEW_NODE;
NODES_6
}
NODES_8 {
NEW_NODE;
NODES_7
}
NODES_9 {
NEW_NODE;
NODES_8
}
NODES_10 {
NEW_NODE;
NODES_9
}
EDGES_1 EDGE;
EDGES_2 {
EDGE;
EDGES_1
}
EDGES_3 {
EDGE;
EDGES_2
}
EDGES_4 {
EDGE;
EDGES_3
}
EDGES_5 {
EDGE;
EDGES_4
}
EDGES_6 {
EDGE;
EDGES_5
}
EDGES_7 {
EDGE;
EDGES_6
}
EDGES_8 {
EDGE;
EDGES_7
}
EDGES_9 {
EDGE;
EDGES_8
}
EDGES_10 {
EDGE;
EDGES_9
}
EDGES_11 {
EDGE;
EDGES_10
}
EDGES_12 {
EDGE;
EDGES_11
}
EDGES_13 {
EDGE;
EDGES_12
}
EDGES_14 {
EDGE;
EDGES_13
}
EDGES_15 {
EDGE;
EDGES_14
}
EDGES_16 {
EDGE;
EDGES_15
}
NEW_NODE nodeNODENUM+ [label=NODE_LABEL, shape=SHAPE_TYPE]
OLD_NODE nodeNODENUM#
NODENUM\+
NODENUM\#
EDGE OLD_NODE EDGEOP LABELED_EDGE
EDGE!
LABELED_EDGE!
LABELED_EDGE OLD_NODE [label=EDGE_LABEL, dir="back"]
EDGE_LABEL_YESNO yes
EDGE_LABEL_YESNO no
NODE_LABEL_PROG Web Browser
NODE_LABEL_PROG Kernel
NODE_LABEL_PROG Userspace
NODE_LABEL_PROG JVM
NODE_LABEL_PROG+10 SYSNAME
NODE_LABEL_PROG Editor
NODE_LABEL_PROG Simulator
NODE_LABEL_PROG Emulator
NODE_LABEL_PROG File System
NODE_LABEL_PROG Network
NODE_LABEL_PROG Video Card
NODE_LABEL_PROG X
NODE_LABEL_PROG Trap handler
NODE_LABEL_PROG Memory
NODE_LABEL_PROG Shell
NODE_LABEL_PROG Keyboard
NODE_LABEL_PROG Display
NODE_LABEL_DEC "NODE_LABEL_LET < NODE_LABEL_LET"
NODE_LABEL_DEC "NODE_LABEL_LET == NODE_LABEL_LET"
NODE_LABEL_DEC "NODE_LABEL_LET > NODE_LABEL_LET"
NODE_LABEL_DEC "NODE_LABEL_LET != NODE_LABEL_LET"
NODE_LABEL_DEC "NODE_LABEL_LET % 2\n== 0"
NODE_LABEL_DEC "goto\nTWODIG"
NODE_LABEL_DEC "goto\nSYSNAME"
NODE_LABEL_DEC stop
NODE_LABEL_DEC start
TWODIG NONZ
TWODIG NONZDIGIT
NODE_LABEL_LET A
NODE_LABEL_LET B
NODE_LABEL_LET C
NODE_LABEL_LET D
NODE_LABEL_LET E
NODE_LABEL_LET F
NODE_LABEL_LET G
NODE_LABEL_LET H
NODE_LABEL_LET I
NODE_LABEL_LET J
NODE_LABEL_LET K
NODE_LABEL_LET L
NODE_LABEL_LET M
NODE_LABEL_LET N
NODE_LABEL_LET O
NODE_LABEL_LET P
NODE_LABEL_LET Q
NODE_LABEL_LET R
NODE_LABEL_LET S
NODE_LABEL_LET T
NODE_LABEL_LET U
NODE_LABEL_LET V
NODE_LABEL_LET W
NODE_LABEL_LET X
NODE_LABEL_LET Y
NODE_LABEL_LET Z
NODE_LABEL_NET Gateway
NODE_LABEL_NET "SYSNAME\nnode"
NODE_LABEL_NET "SYSNAME\nserver"
NODE_LABEL_NET "SYSNAME\nclient"
NODE_LABEL_NET Web proxy
NODE_LABEL_NET Firewall
NODE_LABEL_NET "Remote\nfirewall"
NODE_LABEL_NET "Remote\nserver"
NODE_LABEL_NET "DNS\nserver"
NODE_LABEL_NET "CDN\ncache"
NODE_LABEL_NET "Home\nuser"
NODE_LABEL_NET VPN
NODE_LABEL_NET "Bad\nnode"
NODE_LABEL_NET "Failed!"
NODE_LABEL_NET "Client\nA"
NODE_LABEL_NET "Client\nB"
NODE_LABEL_NET "Server\nA"
NODE_LABEL_NET "Server\nB"
NODE_LABEL_NET "NAT"
NODE_LABEL_HW "L1\ncache"
NODE_LABEL_HW "L2\ncache"
NODE_LABEL_HW "L3\ncache"
NODE_LABEL_HW "Memory\nbus"
NODE_LABEL_HW "CPU"
NODE_LABEL_HW "GPU"
NODE_LABEL_HW "Page\ntable"
NODE_LABEL_HW "Register\nfile"
NODE_LABEL_HW "SYSNAME\ncore"
NODE_LABEL_HW "Trap\nhandler"
NODE_LABEL_HW "DMA"
NODE_LABEL_HW "Disk"
NODE_LABEL_HW "ALU"
NODE_LABEL_HW "PC"
NODE_LABEL_HW "Stack"
NODE_LABEL_HW "Heap"
NONZ 1
NONZ 2
NONZ 3
NONZ 4
NONZ 5
NONZ 6
NONZ 7
NONZ 8
NONZ 9
DIGIT+9 NONZ
DIGIT 0
IP_PORT NONZDIGIT
IP_PART DIGIT
IP_PART+4 NONZDIGIT
IP_PART+4 1DIGITDIGIT
IP_PART 20DIGIT
IP_PART 21DIGIT
IP_PART 22DIGIT
IP_PART 23DIGIT
IP_PART 23DIGIT
IP_PART 24DIGIT
IP_PART 250
IP_PART 251
IP_PART 252
IP_PART 253
IP_PART 254
IP_PART 255
NODE_LABEL_IP+5 "IP_PART.IP_PART.IP_PART.IP_PART", IP_FONT_SIZE
NODE_LABEL_IP "IP_PART.IP_PART.IP_PART.0/24", IP_FONT_SIZE
NODE_LABEL_IP "IP_PART.IP_PART.0.0/16", IP_FONT_SIZE
NODE_LABEL_IP "IP_PART.0.0.0/8", IP_FONT_SIZE
NODE_LABEL_IP "IP_PART.IP_PART.IP_PART.IP_PART:IP_PORT", IP_FONT_SIZE
IP_FONT_SIZE fontsize=9
NODE_LABEL!
# letter
PICK_LABEL_TYPE+2 0
#programs
PICK_LABEL_TYPE+2 1
#network elements
PICK_LABEL_TYPE+2 2
# ip addresses
PICK_LABEL_TYPE 3
# hardware
PICK_LABEL_TYPE+2 4
# decisions
PICK_LABEL_TYPE+2 5
PICK_GRAPH_TYPE graph
PICK_GRAPH_TYPE digraph
PICK_SHAPE_TYPE+3 SHAPE_TYPE
PICK_SHAPE_TYPE+2 SHAPE_TYPE SHAPE_TYPE
PICK_SHAPE_TYPE SHAPE_TYPE SHAPE_TYPE SHAPE_TYPE
PICK_SHAPE_TYPE SHAPE_TYPE SHAPE_TYPE SHAPE_TYPE SHAPE_TYPE SHAPE_TYPE
SHAPE_TYPE+7 ellipse
SHAPE_TYPE circle
SHAPE_TYPE egg
SHAPE_TYPE+5 triangle
SHAPE_TYPE+5 diamond
SHAPE_TYPE+10 box
SHAPE_TYPE trapezium
SHAPE_TYPE parallelogram
SHAPE_TYPE house
SHAPE_TYPE hexagon
SHAPE_TYPE octagon
SHAPE_TYPE record
SHAPE_TYPE polygon
SHAPE_TYPE!
UNDIR_LAYOUT neato
UNDIR_LAYOUT twopi
UNDIR_LAYOUT circo
UNDIR_LAYOUT fdp
DIR_LAYOUT dot