From dbe090a44218764fac0da41939ea1ebb479afaed Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 26 Oct 2012 20:40:13 +0200 Subject: [PATCH] DOC: update document describing relations between internal entities Connections have left the stream interface. fdtab[] has been represented. --- doc/internals/entities.fig | 274 +++++++++------- doc/internals/entities.pdf | Bin 5174 -> 12297 bytes doc/internals/entities.svg | 650 +++++++++++++++++++++++-------------- 3 files changed, 569 insertions(+), 355 deletions(-) diff --git a/doc/internals/entities.fig b/doc/internals/entities.fig index 9e59ea370..10480ecae 100644 --- a/doc/internals/entities.fig +++ b/doc/internals/entities.fig @@ -1,4 +1,4 @@ -#FIG 3.2 +#FIG 3.2 Produced by xfig version 3.2.5-alpha5 Portrait Center Metric @@ -7,42 +7,26 @@ A4 Single -2 1200 2 -6 675 360 12825 11069 +6 -1710 5625 -360 6120 2 2 0 1 0 2 51 -1 20 0.000 0 0 -1 0 0 5 - 11205 6299 12555 6299 12555 6749 11205 6749 11205 6299 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3 - 1 1 1.00 119.99 239.99 - 2475 3870 2475 2790 3555 2340 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3 - 1 1 1.00 119.99 239.99 - 3555 2070 1935 2790 1935 3870 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3 - 1 1 1.00 119.99 239.99 - 2475 8009 2475 8639 3555 9089 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3 - 1 1 1.00 119.99 239.99 - 3555 9359 1935 8639 1935 8009 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 1.00 119.99 239.99 - 4995 8189 4995 8909 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 1.00 119.99 239.99 - 4995 3690 4995 2520 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3 - 1 1 1.00 119.99 239.99 - 11025 8009 11025 8729 8145 9089 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3 - 1 1 1.00 119.99 239.99 - 8145 9449 11565 8999 11565 8009 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 4 - 1 1 1.00 119.99 239.99 - 8145 2340 10125 2340 11025 3240 11025 3870 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 4 - 1 1 1.00 119.99 239.99 - 11475 3870 11475 3240 10125 1890 8145 1890 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 1.00 119.99 239.99 - 8055 3870 8865 3240 + -1710 5669 -360 5669 -360 6119 -1710 6119 -1710 5669 +4 1 0 50 -1 0 16 0.0000 4 225 645 -1080 5939 target\001 +-6 +6 -1215 6210 -765 6660 +2 2 0 1 0 2 51 -1 20 0.000 0 0 -1 0 0 5 + -1215 6210 -765 6210 -765 6659 -1215 6659 -1215 6210 +4 1 0 50 -1 0 16 0.0000 4 195 225 -945 6479 fd\001 +-6 +6 13860 5535 15210 6030 +2 2 0 1 0 2 51 -1 20 0.000 0 0 -1 0 0 5 + 13860 5579 15210 5579 15210 6029 13860 6029 13860 5579 +4 1 0 50 -1 0 16 0.0000 4 225 645 14490 5849 target\001 +-6 +6 14265 6210 14715 6660 +2 2 0 1 0 2 51 -1 20 0.000 0 0 -1 0 0 5 + 14265 6210 14715 6210 14715 6659 14265 6659 14265 6210 +4 1 0 50 -1 0 16 0.0000 4 195 225 14535 6479 fd\001 +-6 2 2 0 1 0 6 52 -1 20 0.000 0 0 -1 0 0 5 3555 5670 4905 5670 4905 6119 3555 6119 3555 5670 2 2 0 1 0 6 52 -1 20 0.000 0 0 -1 0 0 5 @@ -53,55 +37,12 @@ Single 3555 6479 8145 6479 8145 7739 3555 7739 3555 6479 2 2 0 1 0 7 53 -1 20 0.000 0 0 -1 0 0 5 3375 3870 8325 3870 8325 8009 3375 8009 3375 3870 -2 2 0 1 0 2 51 -1 20 0.000 0 0 -1 0 0 5 - 945 6299 2295 6299 2295 6749 945 6749 945 6299 -2 2 0 1 0 6 52 -1 20 0.000 0 0 -1 0 0 5 - 855 5040 2565 5040 2565 6839 855 6839 855 5040 -2 2 0 1 0 7 53 -1 20 0.000 0 0 -1 0 0 5 - 765 3870 3015 3870 3015 8009 765 8009 765 3870 -2 2 0 1 0 7 53 -1 20 0.000 0 0 -1 0 0 5 - 10485 3870 12735 3870 12735 8009 10485 8009 10485 3870 -2 2 0 1 0 6 52 -1 20 0.000 0 0 -1 0 0 5 - 10935 5040 12645 5040 12645 6839 10935 6839 10935 5040 -2 2 0 1 0 7 53 -1 20 0.000 0 0 -1 0 0 5 - 8775 7289 10125 7289 10125 7739 8775 7739 8775 7289 -2 2 0 1 0 7 53 -1 20 0.000 0 0 -1 0 0 5 - 8775 5220 10125 5220 10125 5670 8775 5670 8775 5220 2 2 0 1 0 7 53 -1 20 0.000 0 0 -1 0 0 5 8775 4140 10125 4140 10125 4590 8775 4590 8775 4140 -2 2 0 1 0 3 54 -1 20 0.000 0 0 -1 0 0 5 - 675 3690 12825 3690 12825 8189 675 8189 675 3690 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 1.00 119.99 239.99 - 7605 3870 7425 3240 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 1.00 119.99 239.99 - 6705 9629 6705 10169 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 1.00 119.99 239.99 - 6705 1710 6705 1260 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 1.00 119.99 239.99 - 5715 4140 5715 2520 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 1.00 119.99 239.99 - 5805 7739 5805 8909 -2 2 0 1 0 2 51 -1 20 0.000 0 0 -1 0 0 5 - 945 5670 1395 5670 1395 6119 945 6119 945 5670 -2 2 0 1 0 2 51 -1 20 0.000 0 0 -1 0 0 5 - 12105 5670 12555 5670 12555 6119 12105 6119 12105 5670 2 2 0 1 0 30 54 -1 20 0.000 0 0 -1 0 0 5 8415 2790 9765 2790 9765 3240 8415 3240 8415 2790 2 2 0 1 0 30 54 -1 20 0.000 0 0 -1 0 0 5 6795 2790 8145 2790 8145 3240 6795 3240 6795 2790 -2 2 0 1 0 30 54 -1 20 0.000 0 0 -1 0 0 5 - 8775 6209 10125 6209 10125 6659 8775 6659 8775 6209 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 1.00 119.99 239.99 - 4545 9629 4545 10169 -2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 1.00 119.99 239.99 - 4545 1710 4545 1260 2 2 0 1 0 5 54 -1 20 0.000 0 0 -1 0 0 5 5625 360 7875 360 7875 1260 5625 1260 5625 360 2 2 0 1 0 5 54 -1 20 0.000 0 0 -1 0 0 5 @@ -114,48 +55,145 @@ Single 5625 10169 7875 10169 7875 11069 5625 11069 5625 10169 2 2 0 1 0 5 54 -1 20 0.000 0 0 -1 0 0 5 3825 10169 5175 10169 5175 11069 3825 11069 3825 10169 -4 1 0 50 -1 0 16 0.0000 4 210 570 11835 6569 target\001 -4 1 0 50 -1 0 16 0.0000 4 210 570 1575 6569 target\001 -4 1 0 50 -1 0 16 0.0000 4 150 1080 1755 5310 connection\001 -4 1 0 50 -1 0 16 0.0000 4 150 1080 11745 5310 connection\001 -4 1 0 50 -1 0 16 0.0000 4 180 1980 1845 4230 stream_interface[0]\001 -4 1 0 50 -1 0 16 0.0000 4 180 1980 11565 4230 stream_interface[1]\001 -4 1 0 50 -1 0 16 0.0000 4 240 1380 5805 4410 http_msg[req]\001 -4 1 0 50 -1 0 16 0.0000 4 240 1350 5805 6749 http_msg[rsp]\001 -4 1 0 50 -1 0 16 0.0000 4 210 750 4275 5939 hdr_idx\001 -4 1 0 50 -1 0 16 0.0000 4 180 420 5895 5939 auth\001 -4 1 0 50 -1 0 16 0.0000 4 210 570 9495 7559 target\001 -4 1 0 50 -1 0 16 0.0000 4 210 390 9495 6479 logs\001 -4 1 0 50 -1 0 16 0.0000 4 180 540 9495 5490 stkctr\001 -4 1 0 50 -1 0 16 0.0000 4 150 480 9495 4410 store\001 -4 1 0 50 -1 0 16 0.0000 4 150 690 9495 8099 session\001 -4 1 0 50 -1 0 16 0.0000 4 240 780 7605 6029 http_txn\001 -4 1 0 50 -1 0 16 0.0000 4 240 1290 5805 9179 channel[rep]\001 -4 1 0 50 -1 0 16 0.0000 4 180 210 1215 5939 fd\001 -4 1 0 50 -1 0 16 0.0000 4 180 210 12375 5939 fd\001 -4 1 0 50 -1 0 16 0.0000 4 150 270 7425 3060 uri\001 -4 1 0 50 -1 0 16 0.0000 4 180 750 9135 3060 cookies\001 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 1 + 675 5400 +2 2 0 1 0 7 53 -1 20 0.000 0 0 -1 0 0 5 + 10485 3870 12645 3870 12645 8009 10485 8009 10485 3870 +2 2 0 1 0 7 53 -1 20 0.000 0 0 -1 0 0 5 + 900 3870 3015 3870 3015 8009 900 8009 900 3870 +2 2 0 1 0 6 52 -1 20 0.000 0 0 -1 0 0 5 + -1800 4950 -225 4950 -225 6749 -1800 6749 -1800 4950 +2 2 0 1 0 3 54 -1 20 0.000 0 0 -1 0 0 5 + 675 3690 12825 3690 12825 8189 675 8189 675 3690 +2 2 0 1 0 6 52 -1 20 0.000 0 0 -1 0 0 5 + 13725 8101 15300 8101 15300 8550 13725 8550 13725 8101 +2 2 0 1 0 6 52 -1 20 0.000 0 0 -1 0 0 5 + 13725 4950 15300 4950 15300 6749 13725 6749 13725 4950 +2 2 0 1 0 7 53 -1 20 0.000 0 0 -1 0 0 5 + 8775 7289 10125 7289 10125 7739 8775 7739 8775 7289 +2 2 0 1 0 30 53 -1 20 0.000 0 0 -1 0 0 5 + 8775 6209 10125 6209 10125 6659 8775 6659 8775 6209 +2 2 0 1 0 7 53 -1 20 0.000 0 0 -1 0 0 5 + 8775 5220 10125 5220 10125 5670 8775 5670 8775 5220 +2 2 0 1 0 6 52 -1 20 0.000 0 0 -1 0 0 5 + -1800 8101 -225 8101 -225 8550 -1800 8550 -1800 8101 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 120.00 180.00 + -225 5625 900 5625 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 120.00 180.00 + 900 6075 -225 6075 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 120.00 180.00 + -1035 8100 -1035 6750 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3 + 1 1 1.00 120.00 180.00 + 3555 9359 1935 8639 1935 8009 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3 + 1 1 1.00 120.00 180.00 + 2475 8009 2475 8639 3555 9089 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 120.00 180.00 + 4995 8189 4995 8909 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 120.00 180.00 + 5805 7739 5805 8909 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 120.00 180.00 + 4545 9629 4545 10169 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 120.00 180.00 + 6705 9629 6705 10169 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3 + 1 1 1.00 120.00 180.00 + 11025 8009 11025 8729 8145 9089 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3 + 1 1 1.00 120.00 180.00 + 8145 9449 11565 8999 11565 8009 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 120.00 180.00 + 14490 8100 14490 6750 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 120.00 180.00 + 13725 6075 12645 6075 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 120.00 180.00 + 12645 5625 13725 5625 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 4 + 1 1 1.00 120.00 180.00 + 11475 3870 11475 3240 10125 1890 8145 1890 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 4 + 1 1 1.00 120.00 180.00 + 8145 2340 10125 2340 11025 3240 11025 3870 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 120.00 180.00 + 8055 3870 8865 3240 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 120.00 180.00 + 7605 3870 7425 3240 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 120.00 180.00 + 5715 4140 5715 2520 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 120.00 180.00 + 4995 3690 4995 2520 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3 + 1 1 1.00 120.00 180.00 + 2475 3870 2475 2790 3555 2340 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3 + 1 1 1.00 120.00 180.00 + 3555 2070 1935 2790 1935 3870 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 120.00 180.00 + 4545 1710 4545 1260 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 120.00 180.00 + 6705 1710 6705 1260 +4 1 0 50 -1 0 16 0.0000 4 255 1590 5805 4410 http_msg[req]\001 +4 1 0 50 -1 0 16 0.0000 4 255 1575 5805 6749 http_msg[rsp]\001 +4 1 0 50 -1 0 16 0.0000 4 255 870 4275 5939 hdr_idx\001 +4 1 0 50 -1 0 16 0.0000 4 195 495 5895 5939 auth\001 +4 1 0 50 -1 0 16 0.0000 4 225 645 9495 7559 target\001 +4 1 0 50 -1 0 16 0.0000 4 255 435 9495 6479 logs\001 +4 1 0 50 -1 0 16 0.0000 4 195 645 9495 5490 stkctr\001 +4 1 0 50 -1 0 16 0.0000 4 165 555 9495 4410 store\001 +4 1 0 50 -1 0 16 0.0000 4 195 795 9495 8099 session\001 +4 1 0 50 -1 0 16 0.0000 4 255 1425 5805 9179 channel[rep]\001 +4 1 0 50 -1 0 16 0.0000 4 195 315 7425 3060 uri\001 +4 1 0 50 -1 0 16 0.0000 4 195 825 9135 3060 cookies\001 4 0 0 54 -1 12 12 0.0000 4 90 480 8235 2250 cons\001 -4 2 0 54 -1 12 12 0.0000 4 150 480 3465 1980 prod\001 +4 2 0 54 -1 12 12 0.0000 4 165 480 3465 1980 prod\001 4 2 0 54 -1 12 12 0.0000 4 90 480 3465 9539 cons\001 4 0 0 54 -1 12 12 0.0000 4 120 360 5085 3600 req\001 4 0 0 54 -1 12 12 0.0000 4 120 360 5085 8369 rep\001 4 0 0 54 -1 12 12 0.0000 4 120 240 2565 8369 ob\001 -4 2 0 54 -1 12 12 0.0000 4 120 240 10935 8369 ib\001 -4 0 0 54 -1 12 12 0.0000 4 150 480 8235 9629 prod\001 +4 2 0 54 -1 12 12 0.0000 4 135 240 10935 8369 ib\001 +4 0 0 54 -1 12 12 0.0000 4 165 480 8235 9629 prod\001 4 0 0 54 -1 12 12 0.0000 4 120 240 11565 3600 ob\001 -4 0 0 54 -1 12 12 0.0000 4 120 240 2565 3600 ib\001 -4 1 0 50 -1 0 12 0.0000 4 150 2010 5805 4770 (HTTP request processing)\001 -4 1 0 50 -1 0 12 0.0000 4 150 2100 5805 7199 (HTTP response processing)\001 -4 1 0 50 -1 0 16 0.0000 4 240 1290 5805 1980 channel[req]\001 -4 1 0 50 -1 0 12 0.0000 4 150 2520 5805 2250 (request forwarding and analysis)\001 -4 1 0 50 -1 0 12 0.0000 4 150 2610 5805 9449 (response forwarding and analysis)\001 -4 1 0 50 -1 0 16 0.0000 4 180 630 6705 630 buffer\001 -4 1 0 50 -1 0 12 0.0000 4 150 1320 6705 900 (internal storage)\001 -4 1 0 50 -1 0 16 0.0000 4 180 630 6705 10439 buffer\001 -4 1 0 50 -1 0 12 0.0000 4 150 1320 6705 10709 (internal storage)\001 -4 1 0 50 -1 0 12 0.0000 4 150 1200 4545 10709 (kernel storage)\001 -4 1 0 50 -1 0 16 0.0000 4 210 420 4545 10439 pipe\001 -4 1 0 50 -1 0 12 0.0000 4 150 1200 4545 900 (kernel storage)\001 -4 1 0 50 -1 0 16 0.0000 4 210 420 4545 630 pipe\001 --6 +4 0 0 54 -1 12 12 0.0000 4 135 240 2565 3600 ib\001 +4 1 0 50 -1 0 12 0.0000 4 195 2355 5805 4770 (HTTP request processing)\001 +4 1 0 50 -1 0 12 0.0000 4 195 2490 5805 7199 (HTTP response processing)\001 +4 1 0 50 -1 0 16 0.0000 4 255 1425 5805 1980 channel[req]\001 +4 1 0 50 -1 0 12 0.0000 4 195 2880 5805 2250 (request forwarding and analysis)\001 +4 1 0 50 -1 0 12 0.0000 4 195 3015 5805 9449 (response forwarding and analysis)\001 +4 1 0 50 -1 0 16 0.0000 4 195 675 6705 630 buffer\001 +4 1 0 50 -1 0 12 0.0000 4 195 1485 6705 900 (internal storage)\001 +4 1 0 50 -1 0 16 0.0000 4 195 675 6705 10439 buffer\001 +4 1 0 50 -1 0 12 0.0000 4 195 1485 6705 10709 (internal storage)\001 +4 1 0 50 -1 0 12 0.0000 4 195 1380 4545 10709 (kernel storage)\001 +4 1 0 50 -1 0 16 0.0000 4 255 465 4545 10439 pipe\001 +4 1 0 50 -1 0 12 0.0000 4 195 1380 4545 900 (kernel storage)\001 +4 1 0 50 -1 0 16 0.0000 4 255 465 4545 630 pipe\001 +4 1 0 50 -1 0 16 0.0000 4 255 2205 1980 5940 stream_interface[0]\001 +4 1 0 50 -1 0 16 0.0000 4 255 2205 11610 5940 stream_interface[1]\001 +4 2 0 54 -1 12 12 0.0000 4 90 480 630 6030 conn\001 +4 0 0 54 -1 12 12 0.0000 4 90 480 12870 5535 conn\001 +4 0 0 54 -1 12 12 0.0000 4 90 600 -180 5535 owner\001 +4 1 0 50 -1 0 16 0.0000 4 240 975 14535 8415 fdtab[fd]\001 +4 0 0 54 -1 12 12 0.0000 4 90 600 14535 8010 owner\001 +4 1 0 50 -1 0 16 0.0000 4 195 1245 14535 5220 connection\001 +4 1 0 50 -1 0 16 0.0000 4 195 1245 -990 5220 connection\001 +4 1 0 50 -1 0 16 0.0000 4 240 975 -990 8415 fdtab[fd]\001 +4 0 0 54 -1 12 12 0.0000 4 90 600 -990 8010 owner\001 +4 1 0 50 -1 0 16 0.0000 4 255 975 7605 6029 http_txn\001 +4 2 0 54 -1 12 12 0.0000 4 90 600 13680 6030 owner\001 diff --git a/doc/internals/entities.pdf b/doc/internals/entities.pdf index 2252ffa1298a51695d0625ac94f9806c802ff2f7..260040993cfe23501bbd6c5bd360545ab4004807 100644 GIT binary patch literal 12297 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 - - + + - - - - + + - + cons - + prod - + cons - + req - + rep - + ob - + ib - + prod - + ob - + ib + + +conn + + +conn + + +owner + + +owner + + +owner + + +owner - + + + + - - - - - + + + + - - - + + +target + + +fd + + +target + + +fd - + + - - - - - @@ -507,10 +576,24 @@ fill:#000000;"/> " style="stroke:#000000;stroke-width:16; "/> - + + + + @@ -520,23 +603,49 @@ fill:#000000;"/> " style="stroke:#000000;stroke-width:16; "/> - - - + + + + + + + + @@ -547,10 +656,10 @@ fill:#000000;"/> " style="stroke:#000000;stroke-width:16; "/> - @@ -561,25 +670,49 @@ fill:#000000;"/> " style="stroke:#000000;stroke-width:16; "/> - - - + + + + + + + + @@ -591,10 +724,25 @@ fill:#000000;"/> " style="stroke:#000000;stroke-width:16; "/> - + + + + @@ -604,10 +752,10 @@ fill:#000000;"/> " style="stroke:#000000;stroke-width:16; "/> - @@ -617,36 +765,10 @@ fill:#000000;"/> " style="stroke:#000000;stroke-width:16; "/> - - - - - - - - - @@ -656,36 +778,51 @@ fill:#000000;"/> " style="stroke:#000000;stroke-width:16; "/> - - - - - + + + + @@ -695,114 +832,153 @@ fill:#000000;"/> " style="stroke:#000000;stroke-width:16; "/> - + + + + - -target - - -target - - -connection - - -connection - - -stream_interface[0] - - -stream_interface[1] - - + http_msg[req] - + http_msg[rsp] - + hdr_idx - + auth - + target - + logs - + stkctr - + store - + session - -http_txn - - + channel[rep] - -fd - - -fd - - + uri - + cookies - + (HTTP request processing) - + (HTTP response processing) - + channel[req] - + (request forwarding and analysis) - + (response forwarding and analysis) - + buffer - + (internal storage) - + buffer - + (internal storage) - + (kernel storage) - + pipe - + (kernel storage) - + pipe + + +stream_interface[0] + + +stream_interface[1] + + +fdtab[fd] + + +connection + + +connection + + +fdtab[fd] + + +http_txn