From: Nithin Dabilpuram <ndabilpuram@marvell.com>
Cc: <jerinj@marvell.com>, <schalla@marvell.com>, <dev@dpdk.org>,
"Nithin Dabilpuram" <ndabilpuram@marvell.com>
Subject: [dpdk-dev] [PATCH 00/27] net/cnxk: support for inline ipsec
Date: Thu, 2 Sep 2021 07:44:38 +0530 [thread overview]
Message-ID: <20210902021505.17607-1-ndabilpuram@marvell.com> (raw)
Support for inline ipsec in CN9K event mode and in Cn10K event mode and
poll mode.
Depends-on: series-18524 ("Crypto adapter support for Marvell CNXK driver)
Depends-on: series-18262 ("security: Improve inline fast path routines")
Depends-on: series-18562 ("add lookaside IPsec additional features)
Kommula Shiva Shankar (1):
common/cnxk: add cq enable support in nix Tx path
Nithin Dabilpuram (17):
common/cnxk: add helper API to dump cpt parse header
common/cnxk: allow reuse of SSO API for inline dev
common/cnxk: change nix debug API and queue API interface
common/cnxk: add nix inline device irq API
common/cnxk: add nix inline device init and fini
common/cnxk: add nix inline inbound and outbound support API
common/cnxk: dump cpt lf registers on error intr
common/cnxk: align cpt lf enable/disable sequence
common/cnxk: restore nix sqb pool limit before destroy
common/cnxk: setup aura bp conf based on nix
net/cnxk: add inline security support for cn9k
net/cnxk: add inline security support for cn10k
net/cnxk: add cn9k Rx support for security offload
net/cnxk: add cn9k Tx support for security offload
net/cnxk: add cn10k Rx support for security offload
net/cnxk: add cn10k Tx support for security offload
net/cnxk: reflect globally enabled offloads in queue conf
Satheesh Paul (2):
common/cnxk: add inline IPsec support in rte flow
net/cnxk: add devargs for configuring channel mask
Srujana Challa (7):
common/cnxk: add security support for cn9k fast path
common/cnxk: add anti-replay check implementation for cn9k
net/cnxk: add cn9k anti replay support for security offload
net/cnxk: add cn10k IPsec transport mode support
net/cnxk: update ethertype for mixed IPsec tunnel versions
net/cnxk: allow zero udp6 checksum for non inline device
net/cnxk: add crypto capabilities for AES CBC and HMAC SHA1
doc/guides/nics/cnxk.rst | 122 +++
doc/guides/rel_notes/release_21_11.rst | 5 +
drivers/common/cnxk/cnxk_security.c | 212 +++++
drivers/common/cnxk/cnxk_security.h | 12 +
drivers/common/cnxk/cnxk_security_ar.h | 184 ++++
drivers/common/cnxk/hw/cpt.h | 19 +
drivers/common/cnxk/meson.build | 3 +
drivers/common/cnxk/roc_api.h | 49 +-
drivers/common/cnxk/roc_constants.h | 58 ++
drivers/common/cnxk/roc_cpt.c | 54 +-
drivers/common/cnxk/roc_cpt.h | 10 +
drivers/common/cnxk/roc_cpt_debug.c | 63 +-
drivers/common/cnxk/roc_cpt_priv.h | 1 +
drivers/common/cnxk/roc_idev.c | 2 +
drivers/common/cnxk/roc_idev_priv.h | 3 +
drivers/common/cnxk/roc_io.h | 9 +
drivers/common/cnxk/roc_io_generic.h | 3 +-
drivers/common/cnxk/roc_irq.c | 7 +-
drivers/common/cnxk/roc_nix.c | 2 +-
drivers/common/cnxk/roc_nix.h | 7 +
drivers/common/cnxk/roc_nix_debug.c | 168 +++-
drivers/common/cnxk/roc_nix_fc.c | 23 +-
drivers/common/cnxk/roc_nix_inl.c | 739 ++++++++++++++++
drivers/common/cnxk/roc_nix_inl.h | 169 ++++
drivers/common/cnxk/roc_nix_inl_dev.c | 547 ++++++++++++
drivers/common/cnxk/roc_nix_inl_dev_irq.c | 359 ++++++++
drivers/common/cnxk/roc_nix_inl_priv.h | 62 ++
drivers/common/cnxk/roc_nix_priv.h | 31 +
drivers/common/cnxk/roc_nix_queue.c | 98 ++-
drivers/common/cnxk/roc_npc.c | 27 +-
drivers/common/cnxk/roc_npc_mcam.c | 28 +-
drivers/common/cnxk/roc_platform.h | 11 +-
drivers/common/cnxk/roc_priv.h | 3 +
drivers/common/cnxk/roc_sso.c | 52 +-
drivers/common/cnxk/roc_sso_priv.h | 9 +
drivers/common/cnxk/version.map | 33 +
drivers/event/cnxk/cn10k_eventdev.c | 93 +-
drivers/event/cnxk/cn10k_worker.h | 147 +++-
drivers/event/cnxk/cn10k_worker_deq.c | 2 +-
drivers/event/cnxk/cn10k_worker_deq_burst.c | 2 +-
drivers/event/cnxk/cn10k_worker_deq_ca.c | 2 +-
drivers/event/cnxk/cn10k_worker_deq_tmo.c | 2 +-
drivers/event/cnxk/cn10k_worker_tx_enq.c | 2 +-
drivers/event/cnxk/cn10k_worker_tx_enq_seg.c | 2 +-
drivers/event/cnxk/cn9k_eventdev.c | 180 ++--
drivers/event/cnxk/cn9k_worker.h | 171 +++-
drivers/event/cnxk/cn9k_worker_deq.c | 2 +-
drivers/event/cnxk/cn9k_worker_deq_burst.c | 2 +-
drivers/event/cnxk/cn9k_worker_deq_ca.c | 2 +-
drivers/event/cnxk/cn9k_worker_deq_tmo.c | 2 +-
drivers/event/cnxk/cn9k_worker_dual_deq.c | 2 +-
drivers/event/cnxk/cn9k_worker_dual_deq_burst.c | 2 +-
drivers/event/cnxk/cn9k_worker_dual_deq_ca.c | 2 +-
drivers/event/cnxk/cn9k_worker_dual_deq_tmo.c | 2 +-
drivers/event/cnxk/cn9k_worker_dual_tx_enq.c | 2 +-
drivers/event/cnxk/cn9k_worker_dual_tx_enq_seg.c | 2 +-
drivers/event/cnxk/cn9k_worker_tx_enq.c | 2 +-
drivers/event/cnxk/cn9k_worker_tx_enq_seg.c | 2 +-
drivers/event/cnxk/cnxk_eventdev_adptr.c | 36 +-
drivers/net/cnxk/cn10k_ethdev.c | 36 +-
drivers/net/cnxk/cn10k_ethdev.h | 48 ++
drivers/net/cnxk/cn10k_ethdev_sec.c | 492 +++++++++++
drivers/net/cnxk/cn10k_rx.c | 31 +-
drivers/net/cnxk/cn10k_rx.h | 649 +++++++++++---
drivers/net/cnxk/cn10k_rx_mseg.c | 2 +-
drivers/net/cnxk/cn10k_rx_vec.c | 4 +-
drivers/net/cnxk/cn10k_rx_vec_mseg.c | 4 +-
drivers/net/cnxk/cn10k_tx.c | 31 +-
drivers/net/cnxk/cn10k_tx.h | 1006 +++++++++++++++++++---
drivers/net/cnxk/cn10k_tx_mseg.c | 2 +-
drivers/net/cnxk/cn10k_tx_vec.c | 2 +-
drivers/net/cnxk/cn10k_tx_vec_mseg.c | 2 +-
drivers/net/cnxk/cn9k_ethdev.c | 23 +
drivers/net/cnxk/cn9k_ethdev.h | 64 ++
drivers/net/cnxk/cn9k_ethdev_sec.c | 382 ++++++++
drivers/net/cnxk/cn9k_rx.c | 31 +-
drivers/net/cnxk/cn9k_rx.h | 493 +++++++++--
drivers/net/cnxk/cn9k_rx_mseg.c | 2 +-
drivers/net/cnxk/cn9k_rx_vec.c | 2 +-
drivers/net/cnxk/cn9k_rx_vec_mseg.c | 2 +-
drivers/net/cnxk/cn9k_tx.c | 29 +-
drivers/net/cnxk/cn9k_tx.h | 393 ++++++---
drivers/net/cnxk/cn9k_tx_mseg.c | 2 +-
drivers/net/cnxk/cn9k_tx_vec.c | 2 +-
drivers/net/cnxk/cn9k_tx_vec_mseg.c | 2 +-
drivers/net/cnxk/cnxk_ethdev.c | 221 ++++-
drivers/net/cnxk/cnxk_ethdev.h | 124 ++-
drivers/net/cnxk/cnxk_ethdev_devargs.c | 88 +-
drivers/net/cnxk/cnxk_ethdev_sec.c | 315 +++++++
drivers/net/cnxk/cnxk_lookup.c | 50 +-
drivers/net/cnxk/meson.build | 3 +
drivers/net/cnxk/version.map | 5 +
usertools/dpdk-devbind.py | 8 +-
93 files changed, 7501 insertions(+), 896 deletions(-)
create mode 100644 drivers/common/cnxk/cnxk_security_ar.h
create mode 100644 drivers/common/cnxk/roc_constants.h
create mode 100644 drivers/common/cnxk/roc_nix_inl.c
create mode 100644 drivers/common/cnxk/roc_nix_inl.h
create mode 100644 drivers/common/cnxk/roc_nix_inl_dev.c
create mode 100644 drivers/common/cnxk/roc_nix_inl_dev_irq.c
create mode 100644 drivers/common/cnxk/roc_nix_inl_priv.h
create mode 100644 drivers/net/cnxk/cn10k_ethdev_sec.c
create mode 100644 drivers/net/cnxk/cn9k_ethdev_sec.c
create mode 100644 drivers/net/cnxk/cnxk_ethdev_sec.c
--
2.8.4
next reply other threads:[~2021-09-02 2:16 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-02 2:14 Nithin Dabilpuram [this message]
2021-09-02 2:14 ` [dpdk-dev] [PATCH 01/27] common/cnxk: add security support for cn9k fast path Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 02/27] common/cnxk: add helper API to dump cpt parse header Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 03/27] common/cnxk: allow reuse of SSO API for inline dev Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 04/27] common/cnxk: change nix debug API and queue API interface Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 05/27] common/cnxk: add nix inline device irq API Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 06/27] common/cnxk: add nix inline device init and fini Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 07/27] common/cnxk: add nix inline inbound and outbound support API Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 08/27] common/cnxk: dump cpt lf registers on error intr Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 09/27] common/cnxk: align cpt lf enable/disable sequence Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 10/27] common/cnxk: restore nix sqb pool limit before destroy Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 11/27] common/cnxk: add cq enable support in nix Tx path Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 12/27] common/cnxk: setup aura bp conf based on nix Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 13/27] common/cnxk: add anti-replay check implementation for cn9k Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 14/27] common/cnxk: add inline IPsec support in rte flow Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 15/27] net/cnxk: add inline security support for cn9k Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 16/27] net/cnxk: add inline security support for cn10k Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 17/27] net/cnxk: add cn9k Rx support for security offload Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 18/27] net/cnxk: add cn9k Tx " Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 19/27] net/cnxk: add cn10k Rx " Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 20/27] net/cnxk: add cn10k Tx " Nithin Dabilpuram
2021-09-02 2:14 ` [dpdk-dev] [PATCH 21/27] net/cnxk: add cn9k anti replay " Nithin Dabilpuram
2021-09-02 2:15 ` [dpdk-dev] [PATCH 22/27] net/cnxk: add cn10k IPsec transport mode support Nithin Dabilpuram
2021-09-02 2:15 ` [dpdk-dev] [PATCH 23/27] net/cnxk: update ethertype for mixed IPsec tunnel versions Nithin Dabilpuram
2021-09-02 2:15 ` [dpdk-dev] [PATCH 24/27] net/cnxk: allow zero udp6 checksum for non inline device Nithin Dabilpuram
2021-09-02 2:15 ` [dpdk-dev] [PATCH 25/27] net/cnxk: add crypto capabilities for AES CBC and HMAC SHA1 Nithin Dabilpuram
2021-09-02 2:15 ` [dpdk-dev] [PATCH 26/27] net/cnxk: add devargs for configuring channel mask Nithin Dabilpuram
2021-09-02 2:15 ` [dpdk-dev] [PATCH 27/27] net/cnxk: reflect globally enabled offloads in queue conf Nithin Dabilpuram
2021-09-29 12:44 ` [dpdk-dev] [PATCH 00/27] net/cnxk: support for inline ipsec Jerin Jacob
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 00/28] " Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 01/28] common/cnxk: support cn9k fast path security session Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 02/28] common/cnxk: support CPT parse header dump Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 03/28] common/cnxk: allow reuse of SSO API for inline dev Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 04/28] common/cnxk: change NIX debug API and queue API interface Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 05/28] common/cnxk: support NIX inline device IRQ Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 06/28] common/cnxk: support NIX inline device init and fini Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 07/28] common/cnxk: support NIX inline inbound and outbound setup Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 08/28] common/cnxk: disable CQ drop when inline inbound is enabled Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 09/28] common/cnxk: dump CPT LF registers on error intr Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 10/28] common/cnxk: align CPT LF enable/disable sequence Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 11/28] common/cnxk: restore NIX sqb pool limit before destroy Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 12/28] common/cnxk: add CQ enable support in NIX Tx path Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 13/28] common/cnxk: setup aura BP conf based on nix Nithin Dabilpuram
2021-09-30 17:00 ` [dpdk-dev] [PATCH v2 14/28] common/cnxk: support anti-replay check in SW for cn9k Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 15/28] common/cnxk: support inline IPsec rte flow action Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 16/28] net/cnxk: support inline security setup for cn9k Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 17/28] net/cnxk: support inline security setup for cn10k Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 18/28] net/cnxk: support Rx security offload on cn9k Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 19/28] net/cnxk: support Tx " Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 20/28] net/cnxk: support Rx security offload on cn10k Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 21/28] net/cnxk: support Tx " Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 22/28] net/cnxk: support IPsec anti replay in cn9k Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 23/28] net/cnxk: support IPsec transport mode in cn10k Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 24/28] net/cnxk: update ethertype for mixed IPsec tunnel versions Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 25/28] net/cnxk: allow zero udp6 checksum for non inline device Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 26/28] net/cnxk: add crypto capabilities for AES CBC and HMAC SHA1 Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 27/28] net/cnxk: support configuring channel mask via devargs Nithin Dabilpuram
2021-09-30 17:01 ` [dpdk-dev] [PATCH v2 28/28] net/cnxk: reflect globally enabled offloads in queue conf Nithin Dabilpuram
2021-10-01 5:37 ` [dpdk-dev] [PATCH v2 00/28] net/cnxk: support for inline ipsec Jerin Jacob
2021-10-01 13:39 ` [dpdk-dev] [PATCH v3 " Nithin Dabilpuram
2021-10-01 13:39 ` [dpdk-dev] [PATCH v3 01/28] common/cnxk: support cn9k fast path security session Nithin Dabilpuram
2021-10-01 13:39 ` [dpdk-dev] [PATCH v3 02/28] common/cnxk: support CPT parse header dump Nithin Dabilpuram
2021-10-01 13:39 ` [dpdk-dev] [PATCH v3 03/28] common/cnxk: allow reuse of SSO API for inline dev Nithin Dabilpuram
2021-10-01 13:39 ` [dpdk-dev] [PATCH v3 04/28] common/cnxk: change NIX debug API and queue API interface Nithin Dabilpuram
2021-10-01 13:39 ` [dpdk-dev] [PATCH v3 05/28] common/cnxk: support NIX inline device IRQ Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 06/28] common/cnxk: support NIX inline device init and fini Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 07/28] common/cnxk: support NIX inline inbound and outbound setup Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 08/28] common/cnxk: disable CQ drop when inline inbound is enabled Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 09/28] common/cnxk: dump CPT LF registers on error intr Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 10/28] common/cnxk: align CPT LF enable/disable sequence Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 11/28] common/cnxk: restore NIX sqb pool limit before destroy Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 12/28] common/cnxk: add CQ enable support in NIX Tx path Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 13/28] common/cnxk: setup aura BP conf based on nix Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 14/28] common/cnxk: support anti-replay check in SW for cn9k Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 15/28] common/cnxk: support inline IPsec rte flow action Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 16/28] net/cnxk: support inline security setup for cn9k Nithin Dabilpuram
2021-10-06 16:21 ` Ferruh Yigit
2021-10-06 16:44 ` Nithin Kumar Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 17/28] net/cnxk: support inline security setup for cn10k Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 18/28] net/cnxk: support Rx security offload on cn9k Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 19/28] net/cnxk: support Tx " Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 20/28] net/cnxk: support Rx security offload on cn10k Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 21/28] net/cnxk: support Tx " Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 22/28] net/cnxk: support IPsec anti replay in cn9k Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 23/28] net/cnxk: support IPsec transport mode in cn10k Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 24/28] net/cnxk: update ethertype for mixed IPsec tunnel versions Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 25/28] net/cnxk: allow zero udp6 checksum for non inline device Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 26/28] net/cnxk: add crypto capabilities for AES CBC and HMAC SHA1 Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 27/28] net/cnxk: support configuring channel mask via devargs Nithin Dabilpuram
2021-10-01 13:40 ` [dpdk-dev] [PATCH v3 28/28] net/cnxk: reflect globally enabled offloads in queue conf Nithin Dabilpuram
2021-10-02 13:49 ` [dpdk-dev] [PATCH v3 00/28] net/cnxk: support for inline ipsec Jerin Jacob
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210902021505.17607-1-ndabilpuram@marvell.com \
--to=ndabilpuram@marvell.com \
--cc=dev@dpdk.org \
--cc=jerinj@marvell.com \
--cc=schalla@marvell.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).