# 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