* [PATCH v2 1/2] doc: updated incorrect value for IP frag max fragments [not found] <https://inbox.dpdk.org/dev/20231219151754.3285058-1-euan.bourke@intel.com/> @ 2023-12-21 11:32 ` Euan Bourke 2023-12-21 11:32 ` [PATCH v2 2/2] ip_frag: updated name for IP frag define Euan Bourke ` (3 more replies) 0 siblings, 4 replies; 11+ messages in thread From: Euan Bourke @ 2023-12-21 11:32 UTC (permalink / raw) To: dev; +Cc: Euan Bourke, Thomas Monjalon, Bruce Richardson, Konstantin Ananyev Docs for IP Fragment said RTE_LIBRTE_IP_FRAG_MAX_FRAGS was 4 by default, however this was changed to 8. Documentation has been updated to account for this, including a snippet of the code where RTE_LIBRTE_IP_FRAG_MAX_FRAGS is defined to ensure the documentation stays up to date. Signed-off-by: Euan Bourke <euan.bourke@intel.com> --- .mailmap | 1 + config/rte_config.h | 4 +++- doc/guides/prog_guide/ip_fragment_reassembly_lib.rst | 7 ++++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.mailmap b/.mailmap index ab0742a382..528bc68a30 100644 --- a/.mailmap +++ b/.mailmap @@ -379,6 +379,7 @@ Eric Zhang <eric.zhang@windriver.com> Erik Gabriel Carrillo <erik.g.carrillo@intel.com> Erik Ziegenbalg <eziegenb@brocade.com> Erlu Chen <erlu.chen@intel.com> +Euan Bourke <euan.bourke@intel.com> Eugenio Pérez <eperezma@redhat.com> Eugeny Parshutin <eugeny.parshutin@linux.intel.com> Evan Swanson <evan.swanson@intel.com> diff --git a/config/rte_config.h b/config/rte_config.h index da265d7dd2..a3f92354f8 100644 --- a/config/rte_config.h +++ b/config/rte_config.h @@ -84,8 +84,10 @@ /* rawdev defines */ #define RTE_RAWDEV_MAX_DEVS 64 -/* ip_fragmentation defines */ +/* ip_fragmentation defines 8< */ #define RTE_LIBRTE_IP_FRAG_MAX_FRAG 8 +/* >8 End of ip_fragmentation defines */ + // RTE_LIBRTE_IP_FRAG_TBL_STAT is not set /* rte_power defines */ diff --git a/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst b/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst index 314d4adbb8..5010472246 100644 --- a/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst +++ b/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst @@ -43,7 +43,12 @@ Note that all update/lookup operations on Fragment Table are not thread safe. So if different execution contexts (threads/processes) will access the same table simultaneously, then some external syncing mechanism have to be provided. -Each table entry can hold information about packets consisting of up to RTE_LIBRTE_IP_FRAG_MAX (by default: 4) fragments. +Each table entry can hold information about packets of up to ``RTE_LIBRTE_IP_FRAG_MAX_FRAGS`` fragments, +where ``RTE_LIBRTE_IP_FRAG_MAX_FRAGS`` defaults to: + +.. literalinclude:: ../../../config/rte_config.h + :start-after: ip_fragmentation defines 8< + :end-before: >8 End of ip_fragmentation defines Code example, that demonstrates creation of a new Fragment table: -- 2.34.1 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 2/2] ip_frag: updated name for IP frag define 2023-12-21 11:32 ` [PATCH v2 1/2] doc: updated incorrect value for IP frag max fragments Euan Bourke @ 2023-12-21 11:32 ` Euan Bourke 2023-12-21 11:39 ` [PATCH v2 1/2] doc: updated incorrect value for IP frag max fragments David Marchand ` (2 subsequent siblings) 3 siblings, 0 replies; 11+ messages in thread From: Euan Bourke @ 2023-12-21 11:32 UTC (permalink / raw) To: dev Cc: Euan Bourke, Konstantin Ananyev, Bruce Richardson, Radu Nicolau, Akhil Goyal Removed LIBRTE from name as its an old prefix. Signed-off-by: Euan Bourke <euan.bourke@intel.com> --- app/test/test_reassembly_perf.c | 2 +- config/rte_config.h | 2 +- doc/guides/prog_guide/ip_fragment_reassembly_lib.rst | 4 ++-- doc/guides/sample_app_ug/ip_reassembly.rst | 4 ++-- examples/ip_fragmentation/main.c | 2 +- examples/ip_reassembly/main.c | 2 +- examples/ipsec-secgw/ipsec_worker.h | 2 +- lib/ip_frag/ip_reassembly.h | 2 +- lib/ip_frag/rte_ip_frag.h | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/app/test/test_reassembly_perf.c b/app/test/test_reassembly_perf.c index 3912179022..805ae2fe9d 100644 --- a/app/test/test_reassembly_perf.c +++ b/app/test/test_reassembly_perf.c @@ -20,7 +20,7 @@ #define MAX_FLOWS (1024 * 32) #define MAX_BKTS MAX_FLOWS #define MAX_ENTRIES_PER_BKT 16 -#define MAX_FRAGMENTS RTE_LIBRTE_IP_FRAG_MAX_FRAG +#define MAX_FRAGMENTS RTE_IP_FRAG_MAX_FRAG #define MIN_FRAGMENTS 2 #define MAX_PKTS (MAX_FLOWS * MAX_FRAGMENTS) diff --git a/config/rte_config.h b/config/rte_config.h index a3f92354f8..1f4567b0d2 100644 --- a/config/rte_config.h +++ b/config/rte_config.h @@ -85,7 +85,7 @@ #define RTE_RAWDEV_MAX_DEVS 64 /* ip_fragmentation defines 8< */ -#define RTE_LIBRTE_IP_FRAG_MAX_FRAG 8 +#define RTE_IP_FRAG_MAX_FRAG 8 /* >8 End of ip_fragmentation defines */ // RTE_LIBRTE_IP_FRAG_TBL_STAT is not set diff --git a/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst b/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst index 5010472246..176186e3ea 100644 --- a/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst +++ b/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst @@ -43,8 +43,8 @@ Note that all update/lookup operations on Fragment Table are not thread safe. So if different execution contexts (threads/processes) will access the same table simultaneously, then some external syncing mechanism have to be provided. -Each table entry can hold information about packets of up to ``RTE_LIBRTE_IP_FRAG_MAX_FRAGS`` fragments, -where ``RTE_LIBRTE_IP_FRAG_MAX_FRAGS`` defaults to: +Each table entry can hold information about packets of up to ``RTE_IP_FRAG_MAX_FRAGS`` fragments, +where ``RTE_IP_FRAG_MAX_FRAGS`` defaults to: .. literalinclude:: ../../../config/rte_config.h :start-after: ip_fragmentation defines 8< diff --git a/doc/guides/sample_app_ug/ip_reassembly.rst b/doc/guides/sample_app_ug/ip_reassembly.rst index 5280bf4ea0..9cf4fb3f7d 100644 --- a/doc/guides/sample_app_ug/ip_reassembly.rst +++ b/doc/guides/sample_app_ug/ip_reassembly.rst @@ -135,7 +135,7 @@ Fragment table maintains information about already received fragments of the pac Each IP packet is uniquely identified by triple <Source IP address>, <Destination IP address>, <ID>. To avoid lock contention, each RX queue has its own Fragment Table, e.g. the application can't handle the situation when different fragments of the same packet arrive through different RX queues. -Each table entry can hold information about packet consisting of up to RTE_LIBRTE_IP_FRAG_MAX_FRAGS fragments. +Each table entry can hold information about packet consisting of up to RTE_IP_FRAG_MAX_FRAGS fragments. .. literalinclude:: ../../../examples/ip_reassembly/main.c :language: c @@ -147,7 +147,7 @@ Mempools Initialization ~~~~~~~~~~~~~~~~~~~~~~~ The reassembly application demands a lot of mbuf's to be allocated. -At any given time up to (2 \* max_flow_num \* RTE_LIBRTE_IP_FRAG_MAX_FRAGS \* <maximum number of mbufs per packet>) +At any given time up to (2 \* max_flow_num \* RTE_IP_FRAG_MAX_FRAGS \* <maximum number of mbufs per packet>) can be stored inside Fragment Table waiting for remaining fragments. To keep mempool size under reasonable limits and to avoid situation when one RX queue can starve other queues, each RX queue uses its own mempool. diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c index 744a1aa9b4..1e4471891b 100644 --- a/examples/ip_fragmentation/main.c +++ b/examples/ip_fragmentation/main.c @@ -71,7 +71,7 @@ /* * Max number of fragments per packet expected - defined by config file. */ -#define MAX_PACKET_FRAG RTE_LIBRTE_IP_FRAG_MAX_FRAG +#define MAX_PACKET_FRAG RTE_IP_FRAG_MAX_FRAG #define NB_MBUF 8192 diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c index bd0b1d31de..16607d99f3 100644 --- a/examples/ip_reassembly/main.c +++ b/examples/ip_reassembly/main.c @@ -69,7 +69,7 @@ #define MIN_FLOW_TTL 1 #define DEF_FLOW_TTL MS_PER_S -#define MAX_FRAG_NUM RTE_LIBRTE_IP_FRAG_MAX_FRAG +#define MAX_FRAG_NUM RTE_IP_FRAG_MAX_FRAG /* Should be power of two. */ #define IP_FRAG_TBL_BUCKET_ENTRIES 16 diff --git a/examples/ipsec-secgw/ipsec_worker.h b/examples/ipsec-secgw/ipsec_worker.h index ac980b8bcf..918e6b5200 100644 --- a/examples/ipsec-secgw/ipsec_worker.h +++ b/examples/ipsec-secgw/ipsec_worker.h @@ -291,7 +291,7 @@ send_fragment_packet(struct lcore_conf *qconf, struct rte_mbuf *m, len = tbl->len; /* free space for new fragments */ - if (len + RTE_LIBRTE_IP_FRAG_MAX_FRAG >= RTE_DIM(tbl->m_table)) { + if (len + RTE_IP_FRAG_MAX_FRAG >= RTE_DIM(tbl->m_table)) { send_burst(qconf, len, port); len = 0; } diff --git a/lib/ip_frag/ip_reassembly.h b/lib/ip_frag/ip_reassembly.h index a9f97aefca..77c22ca9d1 100644 --- a/lib/ip_frag/ip_reassembly.h +++ b/lib/ip_frag/ip_reassembly.h @@ -16,7 +16,7 @@ enum { IP_LAST_FRAG_IDX, /* index of last fragment */ IP_FIRST_FRAG_IDX, /* index of first fragment */ IP_MIN_FRAG_NUM, /* minimum number of fragments */ - IP_MAX_FRAG_NUM = RTE_LIBRTE_IP_FRAG_MAX_FRAG, + IP_MAX_FRAG_NUM = RTE_IP_FRAG_MAX_FRAG, /* maximum number of fragments per packet */ }; diff --git a/lib/ip_frag/rte_ip_frag.h b/lib/ip_frag/rte_ip_frag.h index 2ad318096b..6465ec316b 100644 --- a/lib/ip_frag/rte_ip_frag.h +++ b/lib/ip_frag/rte_ip_frag.h @@ -32,7 +32,7 @@ struct rte_mbuf; /** death row size in mbufs */ #define RTE_IP_FRAG_DEATH_ROW_MBUF_LEN \ - (RTE_IP_FRAG_DEATH_ROW_LEN * (RTE_LIBRTE_IP_FRAG_MAX_FRAG + 1)) + (RTE_IP_FRAG_DEATH_ROW_LEN * (RTE_IP_FRAG_MAX_FRAG + 1)) /** mbuf death row (packets to be freed) */ struct rte_ip_frag_death_row { -- 2.34.1 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/2] doc: updated incorrect value for IP frag max fragments 2023-12-21 11:32 ` [PATCH v2 1/2] doc: updated incorrect value for IP frag max fragments Euan Bourke 2023-12-21 11:32 ` [PATCH v2 2/2] ip_frag: updated name for IP frag define Euan Bourke @ 2023-12-21 11:39 ` David Marchand 2023-12-21 11:41 ` Thomas Monjalon 2023-12-21 17:41 ` [PATCH v3 " Euan Bourke 3 siblings, 0 replies; 11+ messages in thread From: David Marchand @ 2023-12-21 11:39 UTC (permalink / raw) To: Euan Bourke; +Cc: dev, Thomas Monjalon, Bruce Richardson, Konstantin Ananyev Hello, On Thu, Dec 21, 2023 at 12:33 PM Euan Bourke <euan.bourke@intel.com> wrote: > > Docs for IP Fragment said RTE_LIBRTE_IP_FRAG_MAX_FRAGS was 4 by default, > however this was changed to 8. > > Documentation has been updated to account for this, including a > snippet of the code where RTE_LIBRTE_IP_FRAG_MAX_FRAGS is defined to > ensure the documentation stays up to date. > > Signed-off-by: Euan Bourke <euan.bourke@intel.com> Fixes: tag? -- David Marchand ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/2] doc: updated incorrect value for IP frag max fragments 2023-12-21 11:32 ` [PATCH v2 1/2] doc: updated incorrect value for IP frag max fragments Euan Bourke 2023-12-21 11:32 ` [PATCH v2 2/2] ip_frag: updated name for IP frag define Euan Bourke 2023-12-21 11:39 ` [PATCH v2 1/2] doc: updated incorrect value for IP frag max fragments David Marchand @ 2023-12-21 11:41 ` Thomas Monjalon 2023-12-21 13:46 ` Bourke, Euan 2023-12-21 17:41 ` [PATCH v3 " Euan Bourke 3 siblings, 1 reply; 11+ messages in thread From: Thomas Monjalon @ 2023-12-21 11:41 UTC (permalink / raw) To: Euan Bourke; +Cc: dev, Bruce Richardson, Konstantin Ananyev 21/12/2023 12:32, Euan Bourke: > -/* ip_fragmentation defines */ > +/* ip_fragmentation defines 8< */ > #define RTE_LIBRTE_IP_FRAG_MAX_FRAG 8 > +/* >8 End of ip_fragmentation defines */ [...] > +.. literalinclude:: ../../../config/rte_config.h > + :start-after: ip_fragmentation defines 8< > + :end-before: >8 End of ip_fragmentation defines In v1 I asked to use "start-at". You didn't reply. It is more convenient for a one-line include. Don't you agree? ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/2] doc: updated incorrect value for IP frag max fragments 2023-12-21 11:41 ` Thomas Monjalon @ 2023-12-21 13:46 ` Bourke, Euan 0 siblings, 0 replies; 11+ messages in thread From: Bourke, Euan @ 2023-12-21 13:46 UTC (permalink / raw) To: Thomas Monjalon; +Cc: dev, Bruce Richardson, Konstantin Ananyev On 21/12/2023 11:41, Thomas Monjalon wrote: > 21/12/2023 12:32, Euan Bourke: >> -/* ip_fragmentation defines */ >> +/* ip_fragmentation defines 8< */ >> #define RTE_LIBRTE_IP_FRAG_MAX_FRAG 8 >> +/* >8 End of ip_fragmentation defines */ > [...] >> +.. literalinclude:: ../../../config/rte_config.h >> + :start-after: ip_fragmentation defines 8< >> + :end-before: >8 End of ip_fragmentation defines > > In v1 I asked to use "start-at". You didn't reply. > It is more convenient for a one-line include. > Don't you agree? > > Apologies, as I was updating the name of the declare in the next patch, I thought this way would be better, will use "start-at" in next version. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v3 1/2] doc: updated incorrect value for IP frag max fragments 2023-12-21 11:32 ` [PATCH v2 1/2] doc: updated incorrect value for IP frag max fragments Euan Bourke ` (2 preceding siblings ...) 2023-12-21 11:41 ` Thomas Monjalon @ 2023-12-21 17:41 ` Euan Bourke 2023-12-21 17:41 ` [PATCH v3 2/2] ip_frag: updated name for IP frag max frag define Euan Bourke 2024-01-08 11:36 ` [PATCH v4 1/2] doc: updated incorrect value for IP frag max fragments Euan Bourke 3 siblings, 2 replies; 11+ messages in thread From: Euan Bourke @ 2023-12-21 17:41 UTC (permalink / raw) To: dev; +Cc: Euan Bourke, stable, Thomas Monjalon, Konstantin Ananyev Docs for IP Fragment said RTE_LIBRTE_IP_FRAG_MAX_FRAG was 4 by default, however this was changed to 8. Documentation has been updated to account for this, including a snippet of code where RTE_LIBRTE_IP_FRAG_MAX_FRAG is defined to ensure documentation stays up to date. Fixes: f8e0f8ce9030 ("ip_frag: increase default maximum of fragments") Cc: stable@dpdk.org Signed-off-by: Euan Bourke <euan.bourke@intel.com> --- .mailmap | 1 + doc/guides/prog_guide/ip_fragment_reassembly_lib.rst | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.mailmap b/.mailmap index ab0742a382..528bc68a30 100644 --- a/.mailmap +++ b/.mailmap @@ -379,6 +379,7 @@ Eric Zhang <eric.zhang@windriver.com> Erik Gabriel Carrillo <erik.g.carrillo@intel.com> Erik Ziegenbalg <eziegenb@brocade.com> Erlu Chen <erlu.chen@intel.com> +Euan Bourke <euan.bourke@intel.com> Eugenio Pérez <eperezma@redhat.com> Eugeny Parshutin <eugeny.parshutin@linux.intel.com> Evan Swanson <evan.swanson@intel.com> diff --git a/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst b/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst index 314d4adbb8..f3ed90d700 100644 --- a/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst +++ b/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst @@ -43,7 +43,13 @@ Note that all update/lookup operations on Fragment Table are not thread safe. So if different execution contexts (threads/processes) will access the same table simultaneously, then some external syncing mechanism have to be provided. -Each table entry can hold information about packets consisting of up to RTE_LIBRTE_IP_FRAG_MAX (by default: 4) fragments. +Each table entry can hold information about packets of up to ``RTE_LIBRTE_IP_FRAG_MAX_FRAG`` fragments, +where ``RTE_LIBRTE_IP_FRAG_MAX_FRAG`` defaults to: + +.. literalinclude:: ../../../config/rte_config.h + :language: c + :start-at: #define RTE_LIBRTE_IP_FRAG_MAX_FRAG + :lines: 1 Code example, that demonstrates creation of a new Fragment table: -- 2.34.1 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v3 2/2] ip_frag: updated name for IP frag max frag define 2023-12-21 17:41 ` [PATCH v3 " Euan Bourke @ 2023-12-21 17:41 ` Euan Bourke 2023-12-22 9:08 ` Bruce Richardson 2024-01-08 11:36 ` [PATCH v4 1/2] doc: updated incorrect value for IP frag max fragments Euan Bourke 1 sibling, 1 reply; 11+ messages in thread From: Euan Bourke @ 2023-12-21 17:41 UTC (permalink / raw) To: dev Cc: Euan Bourke, Konstantin Ananyev, Bruce Richardson, Radu Nicolau, Akhil Goyal Removed LIBRTE from name as its an old prefix. Signed-off-by: Euan Bourke <euan.bourke@intel.com> --- app/test/test_reassembly_perf.c | 2 +- config/rte_config.h | 2 +- doc/guides/prog_guide/ip_fragment_reassembly_lib.rst | 8 ++++---- doc/guides/sample_app_ug/ip_reassembly.rst | 4 ++-- examples/ip_fragmentation/main.c | 2 +- examples/ip_reassembly/main.c | 2 +- examples/ipsec-secgw/ipsec_worker.h | 2 +- lib/ip_frag/ip_reassembly.h | 2 +- lib/ip_frag/rte_ip_frag.h | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/test/test_reassembly_perf.c b/app/test/test_reassembly_perf.c index 3912179022..805ae2fe9d 100644 --- a/app/test/test_reassembly_perf.c +++ b/app/test/test_reassembly_perf.c @@ -20,7 +20,7 @@ #define MAX_FLOWS (1024 * 32) #define MAX_BKTS MAX_FLOWS #define MAX_ENTRIES_PER_BKT 16 -#define MAX_FRAGMENTS RTE_LIBRTE_IP_FRAG_MAX_FRAG +#define MAX_FRAGMENTS RTE_IP_FRAG_MAX_FRAG #define MIN_FRAGMENTS 2 #define MAX_PKTS (MAX_FLOWS * MAX_FRAGMENTS) diff --git a/config/rte_config.h b/config/rte_config.h index da265d7dd2..e2fa2a58fa 100644 --- a/config/rte_config.h +++ b/config/rte_config.h @@ -85,7 +85,7 @@ #define RTE_RAWDEV_MAX_DEVS 64 /* ip_fragmentation defines */ -#define RTE_LIBRTE_IP_FRAG_MAX_FRAG 8 +#define RTE_IP_FRAG_MAX_FRAG 8 // RTE_LIBRTE_IP_FRAG_TBL_STAT is not set /* rte_power defines */ diff --git a/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst b/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst index f3ed90d700..2d422309bb 100644 --- a/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst +++ b/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst @@ -43,12 +43,12 @@ Note that all update/lookup operations on Fragment Table are not thread safe. So if different execution contexts (threads/processes) will access the same table simultaneously, then some external syncing mechanism have to be provided. -Each table entry can hold information about packets of up to ``RTE_LIBRTE_IP_FRAG_MAX_FRAG`` fragments, -where ``RTE_LIBRTE_IP_FRAG_MAX_FRAG`` defaults to: +Each table entry can hold information about packets of up to ``RTE_IP_FRAG_MAX_FRAG`` fragments, +where ``RTE_IP_FRAG_MAX_FRAG`` defaults to: .. literalinclude:: ../../../config/rte_config.h :language: c - :start-at: #define RTE_LIBRTE_IP_FRAG_MAX_FRAG + :start-at: #define RTE_IP_FRAG_MAX_FRAG :lines: 1 Code example, that demonstrates creation of a new Fragment table: @@ -69,7 +69,7 @@ Also, entries that resides in the table longer then <max_cycles> are considered and could be removed/replaced by the new ones. Note that reassembly demands a lot of mbuf's to be allocated. -At any given time up to (2 \* bucket_entries \* RTE_LIBRTE_IP_FRAG_MAX \* <maximum number of mbufs per packet>) +At any given time up to (2 \* bucket_entries \* RTE_IP_FRAG_MAX \* <maximum number of mbufs per packet>) can be stored inside Fragment Table waiting for remaining fragments. Packet Reassembly diff --git a/doc/guides/sample_app_ug/ip_reassembly.rst b/doc/guides/sample_app_ug/ip_reassembly.rst index 5280bf4ea0..d9aaa4b5c4 100644 --- a/doc/guides/sample_app_ug/ip_reassembly.rst +++ b/doc/guides/sample_app_ug/ip_reassembly.rst @@ -135,7 +135,7 @@ Fragment table maintains information about already received fragments of the pac Each IP packet is uniquely identified by triple <Source IP address>, <Destination IP address>, <ID>. To avoid lock contention, each RX queue has its own Fragment Table, e.g. the application can't handle the situation when different fragments of the same packet arrive through different RX queues. -Each table entry can hold information about packet consisting of up to RTE_LIBRTE_IP_FRAG_MAX_FRAGS fragments. +Each table entry can hold information about packet consisting of up to RTE_IP_FRAG_MAX_FRAGS fragments. .. literalinclude:: ../../../examples/ip_reassembly/main.c :language: c @@ -147,7 +147,7 @@ Mempools Initialization ~~~~~~~~~~~~~~~~~~~~~~~ The reassembly application demands a lot of mbuf's to be allocated. -At any given time up to (2 \* max_flow_num \* RTE_LIBRTE_IP_FRAG_MAX_FRAGS \* <maximum number of mbufs per packet>) +At any given time up to (2 \* max_flow_num \* RTE_IP_FRAG_MAX_FRAGS_FRAG \* <maximum number of mbufs per packet>) can be stored inside Fragment Table waiting for remaining fragments. To keep mempool size under reasonable limits and to avoid situation when one RX queue can starve other queues, each RX queue uses its own mempool. diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c index 744a1aa9b4..1e4471891b 100644 --- a/examples/ip_fragmentation/main.c +++ b/examples/ip_fragmentation/main.c @@ -71,7 +71,7 @@ /* * Max number of fragments per packet expected - defined by config file. */ -#define MAX_PACKET_FRAG RTE_LIBRTE_IP_FRAG_MAX_FRAG +#define MAX_PACKET_FRAG RTE_IP_FRAG_MAX_FRAG #define NB_MBUF 8192 diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c index bd0b1d31de..16607d99f3 100644 --- a/examples/ip_reassembly/main.c +++ b/examples/ip_reassembly/main.c @@ -69,7 +69,7 @@ #define MIN_FLOW_TTL 1 #define DEF_FLOW_TTL MS_PER_S -#define MAX_FRAG_NUM RTE_LIBRTE_IP_FRAG_MAX_FRAG +#define MAX_FRAG_NUM RTE_IP_FRAG_MAX_FRAG /* Should be power of two. */ #define IP_FRAG_TBL_BUCKET_ENTRIES 16 diff --git a/examples/ipsec-secgw/ipsec_worker.h b/examples/ipsec-secgw/ipsec_worker.h index ac980b8bcf..918e6b5200 100644 --- a/examples/ipsec-secgw/ipsec_worker.h +++ b/examples/ipsec-secgw/ipsec_worker.h @@ -291,7 +291,7 @@ send_fragment_packet(struct lcore_conf *qconf, struct rte_mbuf *m, len = tbl->len; /* free space for new fragments */ - if (len + RTE_LIBRTE_IP_FRAG_MAX_FRAG >= RTE_DIM(tbl->m_table)) { + if (len + RTE_IP_FRAG_MAX_FRAG >= RTE_DIM(tbl->m_table)) { send_burst(qconf, len, port); len = 0; } diff --git a/lib/ip_frag/ip_reassembly.h b/lib/ip_frag/ip_reassembly.h index a9f97aefca..77c22ca9d1 100644 --- a/lib/ip_frag/ip_reassembly.h +++ b/lib/ip_frag/ip_reassembly.h @@ -16,7 +16,7 @@ enum { IP_LAST_FRAG_IDX, /* index of last fragment */ IP_FIRST_FRAG_IDX, /* index of first fragment */ IP_MIN_FRAG_NUM, /* minimum number of fragments */ - IP_MAX_FRAG_NUM = RTE_LIBRTE_IP_FRAG_MAX_FRAG, + IP_MAX_FRAG_NUM = RTE_IP_FRAG_MAX_FRAG, /* maximum number of fragments per packet */ }; diff --git a/lib/ip_frag/rte_ip_frag.h b/lib/ip_frag/rte_ip_frag.h index 2ad318096b..6465ec316b 100644 --- a/lib/ip_frag/rte_ip_frag.h +++ b/lib/ip_frag/rte_ip_frag.h @@ -32,7 +32,7 @@ struct rte_mbuf; /** death row size in mbufs */ #define RTE_IP_FRAG_DEATH_ROW_MBUF_LEN \ - (RTE_IP_FRAG_DEATH_ROW_LEN * (RTE_LIBRTE_IP_FRAG_MAX_FRAG + 1)) + (RTE_IP_FRAG_DEATH_ROW_LEN * (RTE_IP_FRAG_MAX_FRAG + 1)) /** mbuf death row (packets to be freed) */ struct rte_ip_frag_death_row { -- 2.34.1 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 2/2] ip_frag: updated name for IP frag max frag define 2023-12-21 17:41 ` [PATCH v3 2/2] ip_frag: updated name for IP frag max frag define Euan Bourke @ 2023-12-22 9:08 ` Bruce Richardson 0 siblings, 0 replies; 11+ messages in thread From: Bruce Richardson @ 2023-12-22 9:08 UTC (permalink / raw) To: Euan Bourke; +Cc: dev, Konstantin Ananyev, Radu Nicolau, Akhil Goyal On Thu, Dec 21, 2023 at 05:41:40PM +0000, Euan Bourke wrote: > Removed LIBRTE from name as its an old prefix. > > Signed-off-by: Euan Bourke <euan.bourke@intel.com> > --- > app/test/test_reassembly_perf.c | 2 +- > config/rte_config.h | 2 +- > doc/guides/prog_guide/ip_fragment_reassembly_lib.rst | 8 ++++---- > doc/guides/sample_app_ug/ip_reassembly.rst | 4 ++-- > examples/ip_fragmentation/main.c | 2 +- > examples/ip_reassembly/main.c | 2 +- > examples/ipsec-secgw/ipsec_worker.h | 2 +- > lib/ip_frag/ip_reassembly.h | 2 +- > lib/ip_frag/rte_ip_frag.h | 2 +- > 9 files changed, 13 insertions(+), 13 deletions(-) > > diff --git a/app/test/test_reassembly_perf.c b/app/test/test_reassembly_perf.c > index 3912179022..805ae2fe9d 100644 > --- a/app/test/test_reassembly_perf.c > +++ b/app/test/test_reassembly_perf.c > @@ -20,7 +20,7 @@ > #define MAX_FLOWS (1024 * 32) > #define MAX_BKTS MAX_FLOWS > #define MAX_ENTRIES_PER_BKT 16 > -#define MAX_FRAGMENTS RTE_LIBRTE_IP_FRAG_MAX_FRAG > +#define MAX_FRAGMENTS RTE_IP_FRAG_MAX_FRAG > #define MIN_FRAGMENTS 2 > #define MAX_PKTS (MAX_FLOWS * MAX_FRAGMENTS) > > diff --git a/config/rte_config.h b/config/rte_config.h > index da265d7dd2..e2fa2a58fa 100644 > --- a/config/rte_config.h > +++ b/config/rte_config.h > @@ -85,7 +85,7 @@ > #define RTE_RAWDEV_MAX_DEVS 64 > > /* ip_fragmentation defines */ > -#define RTE_LIBRTE_IP_FRAG_MAX_FRAG 8 > +#define RTE_IP_FRAG_MAX_FRAG 8 > // RTE_LIBRTE_IP_FRAG_TBL_STAT is not set > > /* rte_power defines */ > diff --git a/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst b/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst > index f3ed90d700..2d422309bb 100644 > --- a/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst > +++ b/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst > @@ -43,12 +43,12 @@ Note that all update/lookup operations on Fragment Table are not thread safe. > So if different execution contexts (threads/processes) will access the same table simultaneously, > then some external syncing mechanism have to be provided. > > -Each table entry can hold information about packets of up to ``RTE_LIBRTE_IP_FRAG_MAX_FRAG`` fragments, > -where ``RTE_LIBRTE_IP_FRAG_MAX_FRAG`` defaults to: > +Each table entry can hold information about packets of up to ``RTE_IP_FRAG_MAX_FRAG`` fragments, > +where ``RTE_IP_FRAG_MAX_FRAG`` defaults to: > > .. literalinclude:: ../../../config/rte_config.h > :language: c > - :start-at: #define RTE_LIBRTE_IP_FRAG_MAX_FRAG > + :start-at: #define RTE_IP_FRAG_MAX_FRAG > :lines: 1 > > Code example, that demonstrates creation of a new Fragment table: > @@ -69,7 +69,7 @@ Also, entries that resides in the table longer then <max_cycles> are considered > and could be removed/replaced by the new ones. > > Note that reassembly demands a lot of mbuf's to be allocated. > -At any given time up to (2 \* bucket_entries \* RTE_LIBRTE_IP_FRAG_MAX \* <maximum number of mbufs per packet>) > +At any given time up to (2 \* bucket_entries \* RTE_IP_FRAG_MAX \* <maximum number of mbufs per packet>) Should be RTE_IP_FRAG_MAX_FRAG. You should check all other replacements to ensure the correct define name is being used. I see a couple of other occurances in this patch where the name is wrong. > can be stored inside Fragment Table waiting for remaining fragments. > <snip for brevity> ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v4 1/2] doc: updated incorrect value for IP frag max fragments 2023-12-21 17:41 ` [PATCH v3 " Euan Bourke 2023-12-21 17:41 ` [PATCH v3 2/2] ip_frag: updated name for IP frag max frag define Euan Bourke @ 2024-01-08 11:36 ` Euan Bourke 2024-01-08 11:36 ` [PATCH v4 2/2] ip_frag: updated name for IP frag define Euan Bourke 1 sibling, 1 reply; 11+ messages in thread From: Euan Bourke @ 2024-01-08 11:36 UTC (permalink / raw) To: dev; +Cc: Euan Bourke, stable, Thomas Monjalon, Konstantin Ananyev Docs for IP Fragment said RTE_LIBRTE_IP_FRAG_MAX_FRAG was 4 by default, however this was changed to 8. Documentation has been updated to account for this, including a snippet of code where RTE_LIBRTE_IP_FRAG_MAX_FRAG is defined to ensure documentation stays up to date. Fixes: f8e0f8ce9030 ("ip_frag: increase default maximum of fragments") Cc: stable@dpdk.org Signed-off-by: Euan Bourke <euan.bourke@intel.com> --- .mailmap | 1 + doc/guides/prog_guide/ip_fragment_reassembly_lib.rst | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.mailmap b/.mailmap index ab0742a382..528bc68a30 100644 --- a/.mailmap +++ b/.mailmap @@ -379,6 +379,7 @@ Eric Zhang <eric.zhang@windriver.com> Erik Gabriel Carrillo <erik.g.carrillo@intel.com> Erik Ziegenbalg <eziegenb@brocade.com> Erlu Chen <erlu.chen@intel.com> +Euan Bourke <euan.bourke@intel.com> Eugenio Pérez <eperezma@redhat.com> Eugeny Parshutin <eugeny.parshutin@linux.intel.com> Evan Swanson <evan.swanson@intel.com> diff --git a/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst b/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst index 314d4adbb8..f3ed90d700 100644 --- a/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst +++ b/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst @@ -43,7 +43,13 @@ Note that all update/lookup operations on Fragment Table are not thread safe. So if different execution contexts (threads/processes) will access the same table simultaneously, then some external syncing mechanism have to be provided. -Each table entry can hold information about packets consisting of up to RTE_LIBRTE_IP_FRAG_MAX (by default: 4) fragments. +Each table entry can hold information about packets of up to ``RTE_LIBRTE_IP_FRAG_MAX_FRAG`` fragments, +where ``RTE_LIBRTE_IP_FRAG_MAX_FRAG`` defaults to: + +.. literalinclude:: ../../../config/rte_config.h + :language: c + :start-at: #define RTE_LIBRTE_IP_FRAG_MAX_FRAG + :lines: 1 Code example, that demonstrates creation of a new Fragment table: -- 2.34.1 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v4 2/2] ip_frag: updated name for IP frag define 2024-01-08 11:36 ` [PATCH v4 1/2] doc: updated incorrect value for IP frag max fragments Euan Bourke @ 2024-01-08 11:36 ` Euan Bourke 2024-10-09 18:38 ` Stephen Hemminger 0 siblings, 1 reply; 11+ messages in thread From: Euan Bourke @ 2024-01-08 11:36 UTC (permalink / raw) To: dev Cc: Euan Bourke, Konstantin Ananyev, Bruce Richardson, Radu Nicolau, Akhil Goyal Removed LIBRTE from name as its an old prefix. Signed-off-by: Euan Bourke <euan.bourke@intel.com> --- app/test/test_reassembly_perf.c | 2 +- config/rte_config.h | 2 +- doc/guides/prog_guide/ip_fragment_reassembly_lib.rst | 8 ++++---- doc/guides/sample_app_ug/ip_reassembly.rst | 4 ++-- examples/ip_fragmentation/main.c | 2 +- examples/ip_reassembly/main.c | 2 +- examples/ipsec-secgw/ipsec_worker.h | 2 +- lib/ip_frag/ip_reassembly.h | 2 +- lib/ip_frag/rte_ip_frag.h | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/test/test_reassembly_perf.c b/app/test/test_reassembly_perf.c index 3912179022..805ae2fe9d 100644 --- a/app/test/test_reassembly_perf.c +++ b/app/test/test_reassembly_perf.c @@ -20,7 +20,7 @@ #define MAX_FLOWS (1024 * 32) #define MAX_BKTS MAX_FLOWS #define MAX_ENTRIES_PER_BKT 16 -#define MAX_FRAGMENTS RTE_LIBRTE_IP_FRAG_MAX_FRAG +#define MAX_FRAGMENTS RTE_IP_FRAG_MAX_FRAG #define MIN_FRAGMENTS 2 #define MAX_PKTS (MAX_FLOWS * MAX_FRAGMENTS) diff --git a/config/rte_config.h b/config/rte_config.h index da265d7dd2..e2fa2a58fa 100644 --- a/config/rte_config.h +++ b/config/rte_config.h @@ -85,7 +85,7 @@ #define RTE_RAWDEV_MAX_DEVS 64 /* ip_fragmentation defines */ -#define RTE_LIBRTE_IP_FRAG_MAX_FRAG 8 +#define RTE_IP_FRAG_MAX_FRAG 8 // RTE_LIBRTE_IP_FRAG_TBL_STAT is not set /* rte_power defines */ diff --git a/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst b/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst index f3ed90d700..d826854890 100644 --- a/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst +++ b/doc/guides/prog_guide/ip_fragment_reassembly_lib.rst @@ -43,12 +43,12 @@ Note that all update/lookup operations on Fragment Table are not thread safe. So if different execution contexts (threads/processes) will access the same table simultaneously, then some external syncing mechanism have to be provided. -Each table entry can hold information about packets of up to ``RTE_LIBRTE_IP_FRAG_MAX_FRAG`` fragments, -where ``RTE_LIBRTE_IP_FRAG_MAX_FRAG`` defaults to: +Each table entry can hold information about packets of up to ``RTE_IP_FRAG_MAX_FRAG`` fragments, +where ``RTE_IP_FRAG_MAX_FRAG`` defaults to: .. literalinclude:: ../../../config/rte_config.h :language: c - :start-at: #define RTE_LIBRTE_IP_FRAG_MAX_FRAG + :start-at: #define RTE_IP_FRAG_MAX_FRAG :lines: 1 Code example, that demonstrates creation of a new Fragment table: @@ -69,7 +69,7 @@ Also, entries that resides in the table longer then <max_cycles> are considered and could be removed/replaced by the new ones. Note that reassembly demands a lot of mbuf's to be allocated. -At any given time up to (2 \* bucket_entries \* RTE_LIBRTE_IP_FRAG_MAX \* <maximum number of mbufs per packet>) +At any given time up to (2 \* bucket_entries \* RTE_IP_FRAG_MAX_FRAG \* <maximum number of mbufs per packet>) can be stored inside Fragment Table waiting for remaining fragments. Packet Reassembly diff --git a/doc/guides/sample_app_ug/ip_reassembly.rst b/doc/guides/sample_app_ug/ip_reassembly.rst index 5280bf4ea0..44684a39e2 100644 --- a/doc/guides/sample_app_ug/ip_reassembly.rst +++ b/doc/guides/sample_app_ug/ip_reassembly.rst @@ -135,7 +135,7 @@ Fragment table maintains information about already received fragments of the pac Each IP packet is uniquely identified by triple <Source IP address>, <Destination IP address>, <ID>. To avoid lock contention, each RX queue has its own Fragment Table, e.g. the application can't handle the situation when different fragments of the same packet arrive through different RX queues. -Each table entry can hold information about packet consisting of up to RTE_LIBRTE_IP_FRAG_MAX_FRAGS fragments. +Each table entry can hold information about packet consisting of up to RTE_IP_FRAG_MAX_FRAG fragments. .. literalinclude:: ../../../examples/ip_reassembly/main.c :language: c @@ -147,7 +147,7 @@ Mempools Initialization ~~~~~~~~~~~~~~~~~~~~~~~ The reassembly application demands a lot of mbuf's to be allocated. -At any given time up to (2 \* max_flow_num \* RTE_LIBRTE_IP_FRAG_MAX_FRAGS \* <maximum number of mbufs per packet>) +At any given time up to (2 \* max_flow_num \* RTE_IP_FRAG_MAX_FRAG \* <maximum number of mbufs per packet>) can be stored inside Fragment Table waiting for remaining fragments. To keep mempool size under reasonable limits and to avoid situation when one RX queue can starve other queues, each RX queue uses its own mempool. diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c index 744a1aa9b4..1e4471891b 100644 --- a/examples/ip_fragmentation/main.c +++ b/examples/ip_fragmentation/main.c @@ -71,7 +71,7 @@ /* * Max number of fragments per packet expected - defined by config file. */ -#define MAX_PACKET_FRAG RTE_LIBRTE_IP_FRAG_MAX_FRAG +#define MAX_PACKET_FRAG RTE_IP_FRAG_MAX_FRAG #define NB_MBUF 8192 diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c index bd0b1d31de..16607d99f3 100644 --- a/examples/ip_reassembly/main.c +++ b/examples/ip_reassembly/main.c @@ -69,7 +69,7 @@ #define MIN_FLOW_TTL 1 #define DEF_FLOW_TTL MS_PER_S -#define MAX_FRAG_NUM RTE_LIBRTE_IP_FRAG_MAX_FRAG +#define MAX_FRAG_NUM RTE_IP_FRAG_MAX_FRAG /* Should be power of two. */ #define IP_FRAG_TBL_BUCKET_ENTRIES 16 diff --git a/examples/ipsec-secgw/ipsec_worker.h b/examples/ipsec-secgw/ipsec_worker.h index ac980b8bcf..918e6b5200 100644 --- a/examples/ipsec-secgw/ipsec_worker.h +++ b/examples/ipsec-secgw/ipsec_worker.h @@ -291,7 +291,7 @@ send_fragment_packet(struct lcore_conf *qconf, struct rte_mbuf *m, len = tbl->len; /* free space for new fragments */ - if (len + RTE_LIBRTE_IP_FRAG_MAX_FRAG >= RTE_DIM(tbl->m_table)) { + if (len + RTE_IP_FRAG_MAX_FRAG >= RTE_DIM(tbl->m_table)) { send_burst(qconf, len, port); len = 0; } diff --git a/lib/ip_frag/ip_reassembly.h b/lib/ip_frag/ip_reassembly.h index a9f97aefca..77c22ca9d1 100644 --- a/lib/ip_frag/ip_reassembly.h +++ b/lib/ip_frag/ip_reassembly.h @@ -16,7 +16,7 @@ enum { IP_LAST_FRAG_IDX, /* index of last fragment */ IP_FIRST_FRAG_IDX, /* index of first fragment */ IP_MIN_FRAG_NUM, /* minimum number of fragments */ - IP_MAX_FRAG_NUM = RTE_LIBRTE_IP_FRAG_MAX_FRAG, + IP_MAX_FRAG_NUM = RTE_IP_FRAG_MAX_FRAG, /* maximum number of fragments per packet */ }; diff --git a/lib/ip_frag/rte_ip_frag.h b/lib/ip_frag/rte_ip_frag.h index 2ad318096b..6465ec316b 100644 --- a/lib/ip_frag/rte_ip_frag.h +++ b/lib/ip_frag/rte_ip_frag.h @@ -32,7 +32,7 @@ struct rte_mbuf; /** death row size in mbufs */ #define RTE_IP_FRAG_DEATH_ROW_MBUF_LEN \ - (RTE_IP_FRAG_DEATH_ROW_LEN * (RTE_LIBRTE_IP_FRAG_MAX_FRAG + 1)) + (RTE_IP_FRAG_DEATH_ROW_LEN * (RTE_IP_FRAG_MAX_FRAG + 1)) /** mbuf death row (packets to be freed) */ struct rte_ip_frag_death_row { -- 2.34.1 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 2/2] ip_frag: updated name for IP frag define 2024-01-08 11:36 ` [PATCH v4 2/2] ip_frag: updated name for IP frag define Euan Bourke @ 2024-10-09 18:38 ` Stephen Hemminger 0 siblings, 0 replies; 11+ messages in thread From: Stephen Hemminger @ 2024-10-09 18:38 UTC (permalink / raw) To: Euan Bourke Cc: dev, Konstantin Ananyev, Bruce Richardson, Radu Nicolau, Akhil Goyal On Mon, 8 Jan 2024 11:36:14 +0000 Euan Bourke <euan.bourke@intel.com> wrote: > diff --git a/config/rte_config.h b/config/rte_config.h > index da265d7dd2..e2fa2a58fa 100644 > --- a/config/rte_config.h > +++ b/config/rte_config.h > @@ -85,7 +85,7 @@ > #define RTE_RAWDEV_MAX_DEVS 64 > > /* ip_fragmentation defines */ > -#define RTE_LIBRTE_IP_FRAG_MAX_FRAG 8 > +#define RTE_IP_FRAG_MAX_FRAG 8 > // RTE_LIBRTE_IP_FRAG_TBL_STAT is not set > Any change to a visible define should be documented as an API change in the release notes. Also if changing the name for MAX_FRAG shouldn't the name for the statistics be changed as well as in: RTE_IP_FRAG_TBL_STAT? ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2024-10-09 18:38 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <https://inbox.dpdk.org/dev/20231219151754.3285058-1-euan.bourke@intel.com/> 2023-12-21 11:32 ` [PATCH v2 1/2] doc: updated incorrect value for IP frag max fragments Euan Bourke 2023-12-21 11:32 ` [PATCH v2 2/2] ip_frag: updated name for IP frag define Euan Bourke 2023-12-21 11:39 ` [PATCH v2 1/2] doc: updated incorrect value for IP frag max fragments David Marchand 2023-12-21 11:41 ` Thomas Monjalon 2023-12-21 13:46 ` Bourke, Euan 2023-12-21 17:41 ` [PATCH v3 " Euan Bourke 2023-12-21 17:41 ` [PATCH v3 2/2] ip_frag: updated name for IP frag max frag define Euan Bourke 2023-12-22 9:08 ` Bruce Richardson 2024-01-08 11:36 ` [PATCH v4 1/2] doc: updated incorrect value for IP frag max fragments Euan Bourke 2024-01-08 11:36 ` [PATCH v4 2/2] ip_frag: updated name for IP frag define Euan Bourke 2024-10-09 18:38 ` Stephen Hemminger
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).