1/* A simplified state diagram for HttpSM with API callout points */ 2/* */ 3 4 5digraph g { 6center=1; 7size = "7.5,10"; 8fontsize="20"; 9label = "Inktomi CONFIDENTIAL"; 10orientation = "portrait"; 11 12"ACCEPT" [ label = "Accept" ]; 13"RD_REQ_HDRS" [ label = "Read Req Headers" ]; 14"DNS" [ label = "DNS" ]; 15"C_LOOKUP" [ label = "Cache Lookup" ]; 16"CACHE_LOCK" [ label = "Lock URL in Cache" ]; 17"PICK_ADDR" [ label = "Pick Address" ]; 18"CACHE_MATCH" [ label = "Cache Match" ]; 19"CACHE_FRESH" [ label = "Cache Fresh" ]; 20"SND_REQ_HDRS" [ label = "Send Req Headers" ]; 21"SETUP_C_READ" [ label = "Setup Cache Read" ]; 22"SND_C_HDRS" [ label = "Send Cached Headers" ]; 23"CONNECT" [ label = "Try Connect" ]; 24"SND_REQ_HDRS" [ label = "Send Req Headers" ]; 25"RD_REP_HDRS" [ label = "Read Reply Headers" ]; 26"VALID" [ label = "Check Valid" ]; 27"SETUP_S_READ" [ label = "Setup Server Read" ]; 28"SETUP_CACHE_WRITE" [ label = "Setup Cache Write" ]; 29"SETUP_TRANS" [ label = "Setup Transform" ]; 30"SETUP_REQ_TRANS" [ label = "Setup Request Transform" ]; 31"SETUP_BODY_READ" [ label = "Setup POST/PUT Read" ]; 32"TUNNEL" [ label = "Tunnel Response" ]; 33"TUNNEL_REQ" [ label = "Tunnel Request Body" ]; 34"SND_REP_HDRS" [ label = "Send Reply Headers" ]; 35 36"API_START" [ label = "API - Start" shape=box ]; 37"API_RD_REQ_HDRS" [ label = "API - Read Req Headers" shape=box ]; 38"API_DNS" [ label = "API - DNS" shape=box ]; 39"API_CACHE_MATCH" [ label = "API - Cache Match" shape=box ]; 40"API_CACHE_READ_HDR" [ label = "API - Cache Read Header" shape=box ]; 41"API_SND_REQ_HDRS" [ label = "API - Send Req Headers" shape=box ]; 42"API_RD_REP_HDRS" [ label = "API - Read Reply Headers" shape=box ]; 43"API_SND_REP_HDRS" [ label = "API - Send Reply Headers" shape=box ]; 44"API_SHUTDOWN" [ label = "API - Shutdown" shape=box ]; 45 46"ACCEPT" -> "API_START"; 47"API_START" -> "RD_REQ_HDRS"; 48"RD_REQ_HDRS" -> "API_RD_REQ_HDRS"; 49"API_RD_REQ_HDRS" -> "DNS"; 50"DNS" -> "API_DNS"; 51"API_DNS" -> "C_LOOKUP"; 52"C_LOOKUP" -> "API_CACHE_MATCH" [ label = "hit" ]; 53"C_LOOKUP" -> "CACHE_LOCK" [ label = "miss" ]; 54"CACHE_LOCK" -> "PICK_ADDR"; 55"API_CACHE_MATCH" -> "CACHE_MATCH"; 56"CACHE_MATCH" -> "CACHE_LOCK" [ label = "no match" ]; 57"CACHE_MATCH" -> "API_CACHE_READ_HDR" [ label ="match" ]; 58"API_CACHE_READ_HDR" -> "CACHE_FRESH"; 59"CACHE_FRESH" -> "SND_C_HDRS" [ label ="fresh" ]; 60"CACHE_FRESH" -> "CACHE_LOCK" [ label ="stale" ]; 61"SND_C_HDRS" -> "SETUP_C_READ"; 62"SETUP_C_READ" -> "SETUP_TRANS"; 63"PICK_ADDR" -> "CONNECT"; 64"CONNECT" -> "PICK_ADDR" [ label = "fail" ]; 65"CONNECT" -> "API_SND_REQ_HDRS" [ label = "success" ]; 66"API_SND_REQ_HDRS" -> "SND_REQ_HDRS"; 67"SND_REQ_HDRS" -> "SETUP_BODY_READ" [label = "POST/PUT" ]; 68"SETUP_BODY_READ" -> "SETUP_REQ_TRANS"; 69"SETUP_REQ_TRANS" -> "TUNNEL_REQ"; 70"TUNNEL_REQ" -> "RD_REP_HDRS"; 71"SND_REQ_HDRS" -> "RD_REP_HDRS" [label = "GET" ]; 72"RD_REP_HDRS" -> "API_RD_REP_HDRS" 73"API_RD_REP_HDRS" -> "VALID"; 74"VALID" -> "PICK_ADDR" [ label = "no" ]; 75"VALID" -> "SETUP_S_READ" [ label = "yes" ]; 76"SETUP_S_READ" -> "SETUP_TRANS" [ label = "Uncachable" ]; 77"SETUP_S_READ" -> "SETUP_CACHE_WRITE" [ label = "Cacheable" ]; 78"SETUP_CACHE_WRITE" -> "SETUP_TRANS"; 79"SETUP_TRANS" -> "API_SND_REP_HDRS"; 80"API_SND_REP_HDRS" -> "SND_REP_HDRS"; 81"SND_REP_HDRS" -> "TUNNEL"; 82"TUNNEL" -> "API_SHUTDOWN" 83"API_SHUTDOWN" -> "ACCEPT"; 84 85} 86 87