[6.0] 0e1e4ea94 param: Document mapping to HTTP/2 settings

Dridi Boukelmoune dridi.boukelmoune at gmail.com
Thu Apr 4 14:33:11 UTC 2024


commit 0e1e4ea94e563eb2967dcdadc85eb850243e810a
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date:   Thu Mar 28 16:34:35 2024 +0100

    param: Document mapping to HTTP/2 settings
    
    With the exception of h2_max_header_list_size that is not advertised as
    such despite being ent as part of the initial SETTINGS frame. The same
    parameter also sees its default and maximum values updated to 2^32-1.
    
    This is based on this sentence from rfc9113:
    
    > The initial value of this setting is unlimited.
    
    This aligns the h2_max_header_list_size parameter with the values set in
    h2_settings.h for MAX_HEADER_LIST_SIZE.
    
    Conflicts:
            include/tbl/params.h

diff --git a/include/tbl/params.h b/include/tbl/params.h
index 455a79ec1..5ec1ec821 100644
--- a/include/tbl/params.h
+++ b/include/tbl/params.h
@@ -1816,6 +1816,12 @@ PARAM(
 	/* func */	NULL
 )
 
+#define H2_SETTING_NAME(nm) "SETTINGS_" #nm
+#define H2_SETTING_DESCR(nm)						\
+	"\n\nThe value of this parameter defines " H2_SETTING_NAME(nm)	\
+	" in the initial SETTINGS frame sent to the client when a new "	\
+	"HTTP2 session is established."
+
 PARAM(
 	/* name */      h2_header_table_size,
 	/* typ */       bytes_u,
@@ -1827,7 +1833,8 @@ PARAM(
 	/* s-text */
 	"HTTP2 header table size.\n"
 	"This is the size that will be used for the HPACK dynamic\n"
-	"decoding table.",
+	"decoding table."
+	H2_SETTING_DESCR(HEADER_TABLE_SIZE),
 	/* l-text */    "",
 	/* func */      NULL
 )
@@ -1843,7 +1850,8 @@ PARAM(
        /* s-text */
        "HTTP2 Maximum number of concurrent streams.\n"
        "This is the number of requests that can be active\n"
-       "at the same time for a single HTTP2 connection.",
+       "at the same time for a single HTTP2 connection."
+	H2_SETTING_DESCR(MAX_CONCURRENT_STREAMS),
        /* l-text */    "",
        /* func */      NULL
 )
@@ -1861,7 +1869,8 @@ PARAM(
 	/* units */     "bytes",
 	/* flags */     0,
 	/* s-text */
-	"HTTP2 initial flow control window size.",
+	"HTTP2 initial flow control window size."
+	H2_SETTING_DESCR(INITIAL_WINDOW_SIZE),
 	/* l-text */    "",
 	/* func */      NULL
 )
@@ -1875,7 +1884,8 @@ PARAM(
 	/* units */     "bytes",
 	/* flags */     0,
 	/* s-text */
-	"HTTP2 maximum per frame payload size we are willing to accept.",
+	"HTTP2 maximum per frame payload size we are willing to accept."
+	H2_SETTING_DESCR(MAX_FRAME_SIZE),
 	/* l-text */    "",
 	/* func */      NULL
 )
@@ -1884,8 +1894,8 @@ PARAM(
 	/* name */      h2_max_header_list_size,
 	/* typ */       bytes_u,
 	/* min */       "0b",
-	/* max */       NULL,
-	/* default */   "2147483647b",
+	/* max */	"4294967295b",
+	/* default */	"4294967295b",
 	/* units */     "bytes",
 	/* flags */     0,
 	/* s-text */
@@ -1894,6 +1904,9 @@ PARAM(
 	/* func */      NULL
 )
 
+#undef H2_SETTING_DESCR
+#undef H2_SETTING_NAME
+
 #if 0
 /* actual location mgt_param_tbl.c */
 PARAM(


More information about the varnish-commit mailing list