This tool, KNITT version 20160525, allows you to better manage
the physical layout and connections of a network.
It is particularly effective in optimizing physical layout of networks
involving switches and other components spread across multiple racks.
For more information see the KNITT homepage:
`http://aggregate.org/KNITT`

There were 302 rack crossings remaining of 384 total wires (78.645833%).

The following rack placement specification can be edited and used as input to this form, thus allowing incremental changes. That is also how you can re-render with different color choices for cabling.

[s0 s1 s2 s3 n0 n15 n16 n31 n32 n47 n48 n63 n64 n79 n80 n95 n96 n111 n112 n120 n121 n122 n123 n124 n125 n126] [s4 s5 s6 s7 n1 n2 n3 n4 n5 n6 n7 n8 n9 n10 n11 n12 n13 n14 n23 n24 n40 n56 n72 n88 n104 n127] [s8 s9 s10 s11 n18 n26 n33 n34 n35 n37 n39 n42 n43 n44 n45 n55 n71 n87 n103 n113 n114 n115 n116 n117 n118 n119] [s12 s13 s14 s15 n21 n29 n46 n50 n53 n58 n61 n66 n69 n74 n77 n81 n82 n83 n84 n85 n86 n89 n90 n92 n98 n106] [s16 s s s n17 n19 n20 n22 n25 n41 n49 n57 n65 n67 n68 n70 n73 n75 n76 n78 n93 n94 n97 n101 n105 n109] [s s s s n27 n28 n30 n36 n38 n51 n52 n54 n59 n60 n62 n91 n99 n100 n102 n107 n108 n110 n n n n]

The following SVG diagram shows the arrangement of objects on racks and the links between them. It was rendered using dot.

The following color-coded labels can be printed for marking each node with the set of switches to which it must be connected. The start of each line is the rack number, e.g., rack 2 is [2]. In cases where there are too few cabling colors to assign each switch a unique color, we suggest placing one or more tape stripes on each cable to distinguish between switches of the same color. For example, "/s1" would be the striped cable to switch s1.

[0] | s0: | |||

[0] | s1: | |||

[0] | s2: | |||

[0] | s3: | |||

[0] | n0: | s0 | s1 | /s16 |

[0] | n15: | s0 | s1 | /s13 |

[0] | n16: | s0 | s6 | /s13 |

[0] | n31: | s0 | /s12 | /s13 |

[0] | n32: | s0 | s9 | s10 |

[0] | n47: | s0 | s9 | s10 |

[0] | n48: | s0 | s8 | s9 |

[0] | n63: | s0 | s9 | /s15 |

[0] | n64: | s0 | s5 | s11 |

[0] | n79: | s0 | s10 | s11 |

[0] | n80: | s0 | s11 | /s12 |

[0] | n95: | s0 | s11 | /s12 |

[0] | n96: | s0 | s7 | /s14 |

[0] | n111: | s0 | /s13 | /s14 |

[0] | n112: | s0 | s2 | /s14 |

[0] | n120: | s0 | s1 | s2 |

[0] | n121: | s0 | s2 | s5 |

[0] | n122: | s0 | s2 | s3 |

[0] | n123: | s0 | s2 | s7 |

[0] | n124: | s0 | s2 | s6 |

[0] | n125: | s0 | s2 | s4 |

[0] | n126: | s0 | s2 | s8 |

[1] | s4: | |||

[1] | s5: | |||

[1] | s6: | |||

[1] | s7: | |||

[1] | n1: | s1 | s5 | /s16 |

[1] | n2: | s1 | s3 | s10 |

[1] | n3: | s1 | s7 | /s16 |

[1] | n4: | s1 | s6 | /s16 |

[1] | n5: | s1 | s4 | /s12 |

[1] | n6: | s1 | s8 | /s16 |

[1] | n7: | s1 | s2 | /s13 |

[1] | n8: | s1 | /s13 | /s16 |

[1] | n9: | s1 | s5 | /s16 |

[1] | n10: | s1 | s3 | /s16 |

[1] | n11: | s1 | s7 | /s16 |

[1] | n12: | s1 | s6 | /s16 |

[1] | n13: | s1 | s4 | /s16 |

[1] | n14: | s1 | s8 | /s16 |

[1] | n23: | s2 | s6 | /s13 |

[1] | n24: | s1 | /s12 | /s13 |

[1] | n40: | s1 | s9 | s10 |

[1] | n56: | s1 | s8 | s9 |

[1] | n72: | s1 | s10 | s11 |

[1] | n88: | s1 | s11 | /s12 |

[1] | n104: | s1 | s7 | /s14 |

[1] | n127: | s0 | s2 | /s15 |

[2] | s8: | |||

[2] | s9: | |||

[2] | s10: | |||

[2] | s11: | |||

[2] | n18: | s3 | s6 | /s13 |

[2] | n26: | s3 | /s12 | /s13 |

[2] | n33: | s3 | s5 | s10 |

[2] | n34: | s3 | s10 | /s16 |

[2] | n35: | s3 | s7 | s10 |

[2] | n37: | s3 | s4 | s10 |

[2] | n39: | s2 | s9 | s10 |

[2] | n42: | s3 | s10 | /s16 |

[2] | n43: | s3 | s7 | s10 |

[2] | n44: | s3 | s6 | s10 |

[2] | n45: | s3 | s4 | s10 |

[2] | n55: | s2 | s8 | s9 |

[2] | n71: | s2 | s10 | s11 |

[2] | n87: | s2 | s11 | /s12 |

[2] | n103: | s2 | s7 | /s14 |

[2] | n113: | s2 | s5 | /s15 |

[2] | n114: | s2 | s3 | /s15 |

[2] | n115: | s2 | s7 | /s15 |

[2] | n116: | s2 | s6 | /s15 |

[2] | n117: | s2 | s4 | /s14 |

[2] | n118: | s2 | s8 | /s15 |

[2] | n119: | s2 | /s14 | /s15 |

[3] | s12: | |||

[3] | s13: | |||

[3] | s14: | |||

[3] | s15: | |||

[3] | n21: | s4 | /s12 | /s13 |

[3] | n29: | s4 | /s12 | /s13 |

[3] | n46: | s3 | s8 | s10 |

[3] | n50: | s3 | s8 | s9 |

[3] | n53: | s4 | s8 | s9 |

[3] | n58: | s3 | s9 | /s15 |

[3] | n61: | s4 | s9 | /s15 |

[3] | n66: | s3 | s11 | /s14 |

[3] | n69: | s4 | s10 | s11 |

[3] | n74: | s3 | s10 | s11 |

[3] | n77: | s4 | s11 | /s14 |

[3] | n81: | s4 | s5 | /s12 |

[3] | n82: | s3 | s11 | /s12 |

[3] | n83: | s4 | s7 | /s12 |

[3] | n84: | s4 | s6 | /s12 |

[3] | n85: | s4 | /s12 | /s14 |

[3] | n86: | s4 | s8 | /s12 |

[3] | n89: | s4 | s5 | /s12 |

[3] | n90: | s3 | s11 | /s12 |

[3] | n92: | s4 | s6 | /s12 |

[3] | n98: | s3 | s7 | /s14 |

[3] | n106: | s3 | /s14 | /s15 |

[4] | s16: | |||

[4] | n17: | s5 | /s12 | /s13 |

[4] | n19: | s6 | s7 | /s13 |

[4] | n20: | s6 | /s12 | /s13 |

[4] | n22: | s6 | s8 | /s13 |

[4] | n25: | s5 | /s13 | /s16 |

[4] | n41: | s5 | s9 | s10 |

[4] | n49: | s5 | s9 | /s15 |

[4] | n57: | s5 | s9 | /s15 |

[4] | n65: | s5 | s11 | /s15 |

[4] | n67: | s5 | s7 | s11 |

[4] | n68: | s5 | s6 | s11 |

[4] | n70: | s5 | s8 | s11 |

[4] | n73: | s5 | s10 | /s14 |

[4] | n75: | s5 | s7 | s11 |

[4] | n76: | s5 | s6 | s11 |

[4] | n78: | s5 | s8 | s11 |

[4] | n93: | s4 | s11 | /s15 |

[4] | n94: | s4 | s8 | /s12 |

[4] | n97: | s5 | /s14 | /s15 |

[4] | n101: | s4 | /s13 | /s14 |

[4] | n105: | s5 | /s13 | /s14 |

[4] | n109: | s4 | s7 | /s14 |

[5] | n27: | s6 | s7 | /s13 |

[5] | n28: | s6 | /s13 | /s16 |

[5] | n30: | s6 | s8 | /s13 |

[5] | n36: | s6 | s9 | s10 |

[5] | n38: | s8 | s9 | s10 |

[5] | n51: | s7 | s9 | /s15 |

[5] | n52: | s6 | s9 | /s15 |

[5] | n54: | s8 | s9 | /s15 |

[5] | n59: | s7 | s8 | s9 |

[5] | n60: | s6 | s8 | s9 |

[5] | n62: | s8 | s9 | /s15 |

[5] | n91: | s7 | s11 | /s12 |

[5] | n99: | s7 | /s14 | /s15 |

[5] | n100: | s6 | /s13 | /s14 |

[5] | n102: | s7 | s8 | /s14 |

[5] | n107: | s7 | /s14 | /s15 |

[5] | n108: | s6 | /s14 | /s15 |

[5] | n110: | s7 | s8 | /s14 |

The WWW form interface for KNITT 20160525 is implemented using custom C code written by Hank Dietz, using CGIC for the basic CGI interface.