* [dpdk-dev] [PATCH 1/2] security: use the net library for IP structs @ 2021-09-15 16:26 Tal Shnaiderman 2021-09-15 16:26 ` [dpdk-dev] [PATCH 2/2] security: build on Windows Tal Shnaiderman ` (2 more replies) 0 siblings, 3 replies; 9+ messages in thread From: Tal Shnaiderman @ 2021-09-15 16:26 UTC (permalink / raw) To: dev Cc: thomas, pallavi.kadam, dmitry.kozliuk, navasile, dmitrym, gakhil, declan.doherty Remove the netinet includes and replaces them with rte_ip.h to support the in_addr/in6_addr structs on all operating systems. Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> --- lib/net/rte_ip.h | 1 + lib/security/meson.build | 2 +- lib/security/rte_security.h | 5 +---- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/net/rte_ip.h b/lib/net/rte_ip.h index 05948b69b7..bbd8650962 100644 --- a/lib/net/rte_ip.h +++ b/lib/net/rte_ip.h @@ -25,6 +25,7 @@ #include <netinet/in.h> #include <arpa/inet.h> #include <netinet/ip.h> +#include <netinet/ip6.h> #endif #include <rte_byteorder.h> diff --git a/lib/security/meson.build b/lib/security/meson.build index 5679c8b5c2..1034a7a299 100644 --- a/lib/security/meson.build +++ b/lib/security/meson.build @@ -3,4 +3,4 @@ sources = files('rte_security.c') headers = files('rte_security.h', 'rte_security_driver.h') -deps += ['mempool', 'cryptodev'] +deps += ['mempool', 'cryptodev', 'net'] diff --git a/lib/security/rte_security.h b/lib/security/rte_security.h index 2e136d7929..0c1adcee21 100644 --- a/lib/security/rte_security.h +++ b/lib/security/rte_security.h @@ -19,13 +19,10 @@ extern "C" { #include <sys/types.h> -#include <netinet/in.h> -#include <netinet/ip.h> -#include <netinet/ip6.h> - #include <rte_compat.h> #include <rte_common.h> #include <rte_crypto.h> +#include <rte_ip.h> #include <rte_mbuf.h> #include <rte_mbuf_dyn.h> #include <rte_memory.h> -- 2.16.1.windows.4 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [dpdk-dev] [PATCH 2/2] security: build on Windows 2021-09-15 16:26 [dpdk-dev] [PATCH 1/2] security: use the net library for IP structs Tal Shnaiderman @ 2021-09-15 16:26 ` Tal Shnaiderman 2021-09-19 14:07 ` William Tu 2021-09-29 19:55 ` Kadam, Pallavi 2021-09-15 18:28 ` [dpdk-dev] [EXT] [PATCH 1/2] security: use the net library for IP structs Akhil Goyal 2021-09-19 14:06 ` [dpdk-dev] " William Tu 2 siblings, 2 replies; 9+ messages in thread From: Tal Shnaiderman @ 2021-09-15 16:26 UTC (permalink / raw) To: dev Cc: thomas, pallavi.kadam, dmitry.kozliuk, navasile, dmitrym, gakhil, declan.doherty Build the security library on Windows. Remove unneeded export from version file. Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> --- Depends-on: patch-98796 ("cryptodev: build on Windows") --- lib/meson.build | 1 + lib/security/version.map | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/meson.build b/lib/meson.build index 5f3b1cf365..e5f0094a82 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -86,6 +86,7 @@ if is_windows 'gso', 'latencystats', 'pdump', + 'security', ] # only supported libraries for windows endif diff --git a/lib/security/version.map b/lib/security/version.map index c44c7f5f60..6067051552 100644 --- a/lib/security/version.map +++ b/lib/security/version.map @@ -1,7 +1,6 @@ DPDK_22 { global: - rte_security_attach_session; rte_security_capabilities_get; rte_security_capability_get; rte_security_session_create; -- 2.16.1.windows.4 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [PATCH 2/2] security: build on Windows 2021-09-15 16:26 ` [dpdk-dev] [PATCH 2/2] security: build on Windows Tal Shnaiderman @ 2021-09-19 14:07 ` William Tu 2021-09-29 19:55 ` Kadam, Pallavi 1 sibling, 0 replies; 9+ messages in thread From: William Tu @ 2021-09-19 14:07 UTC (permalink / raw) To: Tal Shnaiderman Cc: dpdk-dev, Thomas Monjalon, Pallavi Kadam, Dmitry Kozliuk, Narcisa Ana Maria Vasile, Dmitry Malloy (MESHCHANINOV), gakhil, declan.doherty On Wed, Sep 15, 2021 at 9:27 AM Tal Shnaiderman <talshn@nvidia.com> wrote: > > Build the security library on Windows. > > Remove unneeded export from version file. > > Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> > --- Acked-by: William Tu <u9012063@gmail.com> ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [PATCH 2/2] security: build on Windows 2021-09-15 16:26 ` [dpdk-dev] [PATCH 2/2] security: build on Windows Tal Shnaiderman 2021-09-19 14:07 ` William Tu @ 2021-09-29 19:55 ` Kadam, Pallavi 2021-09-30 6:33 ` Tal Shnaiderman 2021-10-01 13:44 ` William Tu 1 sibling, 2 replies; 9+ messages in thread From: Kadam, Pallavi @ 2021-09-29 19:55 UTC (permalink / raw) To: Tal Shnaiderman, dev Cc: thomas, dmitry.kozliuk, navasile, dmitrym, gakhil, declan.doherty On 9/15/2021 9:26 AM, Tal Shnaiderman wrote: > Build the security library on Windows. > > Remove unneeded export from version file. > > Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> > --- > Depends-on: patch-98796 ("cryptodev: build on Windows") > --- > lib/meson.build | 1 + > lib/security/version.map | 1 - > 2 files changed, 1 insertion(+), 1 deletion(-) > > diff --git a/lib/meson.build b/lib/meson.build > index 5f3b1cf365..e5f0094a82 100644 > --- a/lib/meson.build > +++ b/lib/meson.build > @@ -86,6 +86,7 @@ if is_windows > 'gso', > 'latencystats', > 'pdump', > + 'security', > ] # only supported libraries for windows > endif > > diff --git a/lib/security/version.map b/lib/security/version.map > index c44c7f5f60..6067051552 100644 > --- a/lib/security/version.map > +++ b/lib/security/version.map > @@ -1,7 +1,6 @@ > DPDK_22 { > global: > > - rte_security_attach_session; > rte_security_capabilities_get; > rte_security_capability_get; > rte_security_session_create; Getting linking errors using clang for 'rte_security_get_userdata' and 'rte_security_set_pkt_metadata' as below: FAILED: lib/rte_security-22.dll "clang" -Wl,/MACHINE:X64 -Wl,/OUT:lib/rte_security-22.dll lib/librte_security.a.p/security_rte_security.c.obj "-Wl,/nologo" "-Wl,/release" "-Wl,/nologo" "-Wl,/OPT:REF" "-Wl,/DLL" "-Wl,/IMPLIB:lib\rte_security.lib" "lib\rte_eal.lib" "lib\rte_kvargs.lib" "lib\rte_mempool.lib" "lib\rte_ring.lib" "lib\rte_cryptodev.lib" "lib\rte_mbuf.lib" "lib\rte_rcu.lib" "lib\rte_net.lib" "-Wl,/def:C:\dpdk\ixgbe\dpdk\build\lib\rte_security_exports.def" "-ldbghelp" "-lsetupapi" "-lws2_32" "-lmincore" "-lkernel32" "-luser32" "-lgdi32" "-lwinspool" "-lshell32" "-lole32" "-loleaut32" "-luuid" "-lcomdlg32" "-ladvapi32" rte_security_exports.def : error LNK2001: unresolved external symbol rte_security_get_userdata rte_security_exports.def : error LNK2001: unresolved external symbol rte_security_set_pkt_metadata lib\rte_security.lib : fatal error LNK1120: 2 unresolved externals clang: error: linker command failed with exit code 1120 (use -v to see invocation) Should it be removed from version file? ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [PATCH 2/2] security: build on Windows 2021-09-29 19:55 ` Kadam, Pallavi @ 2021-09-30 6:33 ` Tal Shnaiderman 2021-10-01 13:44 ` William Tu 1 sibling, 0 replies; 9+ messages in thread From: Tal Shnaiderman @ 2021-09-30 6:33 UTC (permalink / raw) To: Kadam, Pallavi, dev Cc: NBU-Contact-Thomas Monjalon, dmitry.kozliuk, navasile, dmitrym, gakhil, declan.doherty > Subject: Re: [PATCH 2/2] security: build on Windows > > External email: Use caution opening links or attachments > > > On 9/15/2021 9:26 AM, Tal Shnaiderman wrote: > > Build the security library on Windows. > > > > Remove unneeded export from version file. > > > > Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> > > --- > > Depends-on: patch-98796 ("cryptodev: build on Windows") > > --- > > lib/meson.build | 1 + > > lib/security/version.map | 1 - > > 2 files changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/lib/meson.build b/lib/meson.build index > > 5f3b1cf365..e5f0094a82 100644 > > --- a/lib/meson.build > > +++ b/lib/meson.build > > @@ -86,6 +86,7 @@ if is_windows > > 'gso', > > 'latencystats', > > 'pdump', > > + 'security', > > ] # only supported libraries for windows > > endif > > > > diff --git a/lib/security/version.map b/lib/security/version.map index > > c44c7f5f60..6067051552 100644 > > --- a/lib/security/version.map > > +++ b/lib/security/version.map > > @@ -1,7 +1,6 @@ > > DPDK_22 { > > global: > > > > - rte_security_attach_session; > > rte_security_capabilities_get; > > rte_security_capability_get; > > rte_security_session_create; > > Getting linking errors using clang for 'rte_security_get_userdata' and > 'rte_security_set_pkt_metadata' as below: > > FAILED: lib/rte_security-22.dll > "clang" -Wl,/MACHINE:X64 -Wl,/OUT:lib/rte_security-22.dll > lib/librte_security.a.p/security_rte_security.c.obj "-Wl,/nologo" > "-Wl,/release" "-Wl,/nologo" "-Wl,/OPT:REF" "-Wl,/DLL" > "-Wl,/IMPLIB:lib\rte_security.lib" "lib\rte_eal.lib" > "lib\rte_kvargs.lib" "lib\rte_mempool.lib" "lib\rte_ring.lib" > "lib\rte_cryptodev.lib" "lib\rte_mbuf.lib" "lib\rte_rcu.lib" > "lib\rte_net.lib" > "-Wl,/def:C:\dpdk\ixgbe\dpdk\build\lib\rte_security_exports.def" > "-ldbghelp" "-lsetupapi" "-lws2_32" "-lmincore" "-lkernel32" "-luser32" > "-lgdi32" "-lwinspool" "-lshell32" "-lole32" "-loleaut32" "-luuid" > "-lcomdlg32" "-ladvapi32" > rte_security_exports.def : error LNK2001: unresolved external symbol > rte_security_get_userdata rte_security_exports.def : error LNK2001: > unresolved external symbol rte_security_set_pkt_metadata > lib\rte_security.lib : fatal error LNK1120: 2 unresolved externals > clang: error: linker command failed with exit code 1120 (use -v to see > invocation) > > Should it be removed from version file? Yes, those 2 functions were changed in the patch below after my v1 was sent and no longer need export. https://git.dpdk.org/dpdk/commit/?id=d08dcd28c3b245468a9859b7b9a288247dfc95f1 I'll remove them from the version file in v2 as suggested, thanks. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [PATCH 2/2] security: build on Windows 2021-09-29 19:55 ` Kadam, Pallavi 2021-09-30 6:33 ` Tal Shnaiderman @ 2021-10-01 13:44 ` William Tu 1 sibling, 0 replies; 9+ messages in thread From: William Tu @ 2021-10-01 13:44 UTC (permalink / raw) To: Kadam, Pallavi Cc: Tal Shnaiderman, dpdk-dev, Thomas Monjalon, Dmitry Kozliuk, Narcisa Ana Maria Vasile, Dmitry Malloy (MESHCHANINOV), gakhil, declan.doherty On Wed, Sep 29, 2021 at 12:55 PM Kadam, Pallavi <pallavi.kadam@intel.com> wrote: > > > On 9/15/2021 9:26 AM, Tal Shnaiderman wrote: > > Build the security library on Windows. > > > > Remove unneeded export from version file. > > > > Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> > > --- > > Depends-on: patch-98796 ("cryptodev: build on Windows") > > --- > > lib/meson.build | 1 + > > lib/security/version.map | 1 - > > 2 files changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/lib/meson.build b/lib/meson.build > > index 5f3b1cf365..e5f0094a82 100644 > > --- a/lib/meson.build > > +++ b/lib/meson.build > > @@ -86,6 +86,7 @@ if is_windows > > 'gso', > > 'latencystats', > > 'pdump', > > + 'security', > > ] # only supported libraries for windows > > endif > > > > diff --git a/lib/security/version.map b/lib/security/version.map > > index c44c7f5f60..6067051552 100644 > > --- a/lib/security/version.map > > +++ b/lib/security/version.map > > @@ -1,7 +1,6 @@ > > DPDK_22 { > > global: > > > > - rte_security_attach_session; > > rte_security_capabilities_get; > > rte_security_capability_get; > > rte_security_session_create; > > Getting linking errors using clang for 'rte_security_get_userdata' and > 'rte_security_set_pkt_metadata' as below: > > FAILED: lib/rte_security-22.dll > "clang" -Wl,/MACHINE:X64 -Wl,/OUT:lib/rte_security-22.dll > lib/librte_security.a.p/security_rte_security.c.obj "-Wl,/nologo" > "-Wl,/release" "-Wl,/nologo" "-Wl,/OPT:REF" "-Wl,/DLL" > "-Wl,/IMPLIB:lib\rte_security.lib" "lib\rte_eal.lib" > "lib\rte_kvargs.lib" "lib\rte_mempool.lib" "lib\rte_ring.lib" > "lib\rte_cryptodev.lib" "lib\rte_mbuf.lib" "lib\rte_rcu.lib" > "lib\rte_net.lib" > "-Wl,/def:C:\dpdk\ixgbe\dpdk\build\lib\rte_security_exports.def" > "-ldbghelp" "-lsetupapi" "-lws2_32" "-lmincore" "-lkernel32" "-luser32" > "-lgdi32" "-lwinspool" "-lshell32" "-lole32" "-loleaut32" "-luuid" > "-lcomdlg32" "-ladvapi32" > rte_security_exports.def : error LNK2001: unresolved external symbol > rte_security_get_userdata > rte_security_exports.def : error LNK2001: unresolved external symbol > rte_security_set_pkt_metadata > lib\rte_security.lib : fatal error LNK1120: 2 unresolved externals > clang: error: linker command failed with exit code 1120 (use -v to see > invocation) > > Should it be removed from version file? > Previously it works ok, now on the latest main branch also hit the same issue. And yes, we should remove it from the version file. I will prepare the patch. William ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [EXT] [PATCH 1/2] security: use the net library for IP structs 2021-09-15 16:26 [dpdk-dev] [PATCH 1/2] security: use the net library for IP structs Tal Shnaiderman 2021-09-15 16:26 ` [dpdk-dev] [PATCH 2/2] security: build on Windows Tal Shnaiderman @ 2021-09-15 18:28 ` Akhil Goyal 2021-09-16 18:40 ` Tal Shnaiderman 2021-09-19 14:06 ` [dpdk-dev] " William Tu 2 siblings, 1 reply; 9+ messages in thread From: Akhil Goyal @ 2021-09-15 18:28 UTC (permalink / raw) To: Tal Shnaiderman, dev Cc: thomas, pallavi.kadam, dmitry.kozliuk, navasile, dmitrym, declan.doherty > Remove the netinet includes and replaces them > with rte_ip.h to support the in_addr/in6_addr structs > on all operating systems. > > Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> > --- > lib/net/rte_ip.h | 1 + > lib/security/meson.build | 2 +- > lib/security/rte_security.h | 5 +---- > 3 files changed, 3 insertions(+), 5 deletions(-) > > diff --git a/lib/net/rte_ip.h b/lib/net/rte_ip.h > index 05948b69b7..bbd8650962 100644 > --- a/lib/net/rte_ip.h > +++ b/lib/net/rte_ip.h > @@ -25,6 +25,7 @@ > #include <netinet/in.h> > #include <arpa/inet.h> > #include <netinet/ip.h> > +#include <netinet/ip6.h> > #endif > > #include <rte_byteorder.h> > diff --git a/lib/security/meson.build b/lib/security/meson.build > index 5679c8b5c2..1034a7a299 100644 > --- a/lib/security/meson.build > +++ b/lib/security/meson.build > @@ -3,4 +3,4 @@ > > sources = files('rte_security.c') > headers = files('rte_security.h', 'rte_security_driver.h') > -deps += ['mempool', 'cryptodev'] > +deps += ['mempool', 'cryptodev', 'net'] It is just a header file inclusion, will it really need to add dependency on 'net'? > diff --git a/lib/security/rte_security.h b/lib/security/rte_security.h > index 2e136d7929..0c1adcee21 100644 > --- a/lib/security/rte_security.h > +++ b/lib/security/rte_security.h > @@ -19,13 +19,10 @@ extern "C" { > > #include <sys/types.h> > > -#include <netinet/in.h> > -#include <netinet/ip.h> > -#include <netinet/ip6.h> > - > #include <rte_compat.h> > #include <rte_common.h> > #include <rte_crypto.h> > +#include <rte_ip.h> > #include <rte_mbuf.h> > #include <rte_mbuf_dyn.h> > #include <rte_memory.h> > -- > 2.16.1.windows.4 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [EXT] [PATCH 1/2] security: use the net library for IP structs 2021-09-15 18:28 ` [dpdk-dev] [EXT] [PATCH 1/2] security: use the net library for IP structs Akhil Goyal @ 2021-09-16 18:40 ` Tal Shnaiderman 0 siblings, 0 replies; 9+ messages in thread From: Tal Shnaiderman @ 2021-09-16 18:40 UTC (permalink / raw) To: Akhil Goyal, dev Cc: NBU-Contact-Thomas Monjalon, pallavi.kadam, dmitry.kozliuk, navasile, dmitrym, declan.doherty > Subject: RE: [EXT] [PATCH 1/2] security: use the net library for IP structs > > External email: Use caution opening links or attachments > > > > Remove the netinet includes and replaces them with rte_ip.h to support > > the in_addr/in6_addr structs on all operating systems. > > > > Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> > > --- > > lib/net/rte_ip.h | 1 + > > lib/security/meson.build | 2 +- > > lib/security/rte_security.h | 5 +---- > > 3 files changed, 3 insertions(+), 5 deletions(-) > > > > diff --git a/lib/net/rte_ip.h b/lib/net/rte_ip.h index > > 05948b69b7..bbd8650962 100644 > > --- a/lib/net/rte_ip.h > > +++ b/lib/net/rte_ip.h > > @@ -25,6 +25,7 @@ > > #include <netinet/in.h> > > #include <arpa/inet.h> > > #include <netinet/ip.h> > > +#include <netinet/ip6.h> > > #endif > > > > #include <rte_byteorder.h> > > diff --git a/lib/security/meson.build b/lib/security/meson.build index > > 5679c8b5c2..1034a7a299 100644 > > --- a/lib/security/meson.build > > +++ b/lib/security/meson.build > > @@ -3,4 +3,4 @@ > > > > sources = files('rte_security.c') > > headers = files('rte_security.h', 'rte_security_driver.h') -deps += > > ['mempool', 'cryptodev'] > > +deps += ['mempool', 'cryptodev', 'net'] > > It is just a header file inclusion, will it really need to add dependency on 'net'? > Without it I'm getting an error of missing file on the new include, I can replace it with an ifdef similar to what rte_ip.h has and loose the dependency: #ifdef RTE_EXEC_ENV_WINDOWS #include <ws2tcpip.h> #else #include <netinet/in.h> #include <netinet/ip.h> #include <netinet/ip6.h> #endif however I think it's better to remove OS includes, unless there is an issue with adding 'net' as dependency. > > diff --git a/lib/security/rte_security.h b/lib/security/rte_security.h > > index 2e136d7929..0c1adcee21 100644 > > --- a/lib/security/rte_security.h > > +++ b/lib/security/rte_security.h > > @@ -19,13 +19,10 @@ extern "C" { > > > > #include <sys/types.h> > > > > -#include <netinet/in.h> > > -#include <netinet/ip.h> > > -#include <netinet/ip6.h> > > - > > #include <rte_compat.h> > > #include <rte_common.h> > > #include <rte_crypto.h> > > +#include <rte_ip.h> > > #include <rte_mbuf.h> > > #include <rte_mbuf_dyn.h> > > #include <rte_memory.h> > > -- > > 2.16.1.windows.4 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [PATCH 1/2] security: use the net library for IP structs 2021-09-15 16:26 [dpdk-dev] [PATCH 1/2] security: use the net library for IP structs Tal Shnaiderman 2021-09-15 16:26 ` [dpdk-dev] [PATCH 2/2] security: build on Windows Tal Shnaiderman 2021-09-15 18:28 ` [dpdk-dev] [EXT] [PATCH 1/2] security: use the net library for IP structs Akhil Goyal @ 2021-09-19 14:06 ` William Tu 2 siblings, 0 replies; 9+ messages in thread From: William Tu @ 2021-09-19 14:06 UTC (permalink / raw) To: Tal Shnaiderman Cc: dpdk-dev, Thomas Monjalon, Pallavi Kadam, Dmitry Kozliuk, Narcisa Ana Maria Vasile, Dmitry Malloy (MESHCHANINOV), gakhil, declan.doherty On Wed, Sep 15, 2021 at 9:27 AM Tal Shnaiderman <talshn@nvidia.com> wrote: > > Remove the netinet includes and replaces them > with rte_ip.h to support the in_addr/in6_addr structs > on all operating systems. > > Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> > --- Acked-by: William Tu <u9012063@gmail.com> I sent a similar patch to enable ixgbe support for windows. http://inbox.dpdk.org/dev/CALDO+SY_YkdV+Dx-dUJx8cyqafL6HdL=09DrOGCUBeonH2bPrA@mail.gmail.com/T/#t ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2021-10-01 13:45 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-09-15 16:26 [dpdk-dev] [PATCH 1/2] security: use the net library for IP structs Tal Shnaiderman 2021-09-15 16:26 ` [dpdk-dev] [PATCH 2/2] security: build on Windows Tal Shnaiderman 2021-09-19 14:07 ` William Tu 2021-09-29 19:55 ` Kadam, Pallavi 2021-09-30 6:33 ` Tal Shnaiderman 2021-10-01 13:44 ` William Tu 2021-09-15 18:28 ` [dpdk-dev] [EXT] [PATCH 1/2] security: use the net library for IP structs Akhil Goyal 2021-09-16 18:40 ` Tal Shnaiderman 2021-09-19 14:06 ` [dpdk-dev] " William Tu
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).