* [dpdk-dev] [PATCH] vhost: call rte_vhost_enable_guest_notification only on enabled queues @ 2016-04-07 0:29 Rich Lane 2016-04-07 10:40 ` Loftus, Ciara ` (2 more replies) 0 siblings, 3 replies; 11+ messages in thread From: Rich Lane @ 2016-04-07 0:29 UTC (permalink / raw) To: dev; +Cc: Tetsuya Mukawa, Yuanhan Liu If the vhost PMD were configured with more queues than the guest, the old code would segfault in rte_vhost_enable_guest_notification due to a NULL virtqueue pointer. Fixes: ee584e9710b9 ("vhost: add driver on top of the library") Signed-off-by: Rich Lane <rich.lane@bigswitch.com> --- drivers/net/vhost/rte_eth_vhost.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c index b1eb082..310cbef 100644 --- a/drivers/net/vhost/rte_eth_vhost.c +++ b/drivers/net/vhost/rte_eth_vhost.c @@ -265,7 +265,6 @@ new_device(struct virtio_net *dev) vq->device = dev; vq->internal = internal; vq->port = eth_dev->data->port_id; - rte_vhost_enable_guest_notification(dev, vq->virtqueue_id, 0); } for (i = 0; i < eth_dev->data->nb_tx_queues; i++) { vq = eth_dev->data->tx_queues[i]; @@ -274,9 +273,11 @@ new_device(struct virtio_net *dev) vq->device = dev; vq->internal = internal; vq->port = eth_dev->data->port_id; - rte_vhost_enable_guest_notification(dev, vq->virtqueue_id, 0); } + for (i = 0; i < dev->virt_qp_nb * VIRTIO_QNUM; i++) + rte_vhost_enable_guest_notification(dev, i, 0); + dev->flags |= VIRTIO_DEV_RUNNING; dev->priv = eth_dev; eth_dev->data->dev_link.link_status = ETH_LINK_UP; -- 1.9.1 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] vhost: call rte_vhost_enable_guest_notification only on enabled queues 2016-04-07 0:29 [dpdk-dev] [PATCH] vhost: call rte_vhost_enable_guest_notification only on enabled queues Rich Lane @ 2016-04-07 10:40 ` Loftus, Ciara 2016-04-07 11:48 ` Tan, Jianfeng 2016-04-07 15:42 ` Yuanhan Liu 2 siblings, 0 replies; 11+ messages in thread From: Loftus, Ciara @ 2016-04-07 10:40 UTC (permalink / raw) To: Rich Lane, dev; +Cc: Tetsuya Mukawa, Yuanhan Liu > > If the vhost PMD were configured with more queues than the guest, the old > code would segfault in rte_vhost_enable_guest_notification due to a NULL > virtqueue pointer. > > Fixes: ee584e9710b9 ("vhost: add driver on top of the library") > Signed-off-by: Rich Lane <rich.lane@bigswitch.com> > --- > drivers/net/vhost/rte_eth_vhost.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/vhost/rte_eth_vhost.c > b/drivers/net/vhost/rte_eth_vhost.c > index b1eb082..310cbef 100644 > --- a/drivers/net/vhost/rte_eth_vhost.c > +++ b/drivers/net/vhost/rte_eth_vhost.c > @@ -265,7 +265,6 @@ new_device(struct virtio_net *dev) > vq->device = dev; > vq->internal = internal; > vq->port = eth_dev->data->port_id; > - rte_vhost_enable_guest_notification(dev, vq- > >virtqueue_id, 0); > } > for (i = 0; i < eth_dev->data->nb_tx_queues; i++) { > vq = eth_dev->data->tx_queues[i]; > @@ -274,9 +273,11 @@ new_device(struct virtio_net *dev) > vq->device = dev; > vq->internal = internal; > vq->port = eth_dev->data->port_id; > - rte_vhost_enable_guest_notification(dev, vq- > >virtqueue_id, 0); > } > > + for (i = 0; i < dev->virt_qp_nb * VIRTIO_QNUM; i++) > + rte_vhost_enable_guest_notification(dev, i, 0); > + > dev->flags |= VIRTIO_DEV_RUNNING; > dev->priv = eth_dev; > eth_dev->data->dev_link.link_status = ETH_LINK_UP; > -- > 1.9.1 I see the same issue, and verified that this patch solves it. Thanks! Tested-by: Ciara Loftus <ciara.loftus@intel.com> Thanks, Ciara ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] vhost: call rte_vhost_enable_guest_notification only on enabled queues 2016-04-07 0:29 [dpdk-dev] [PATCH] vhost: call rte_vhost_enable_guest_notification only on enabled queues Rich Lane 2016-04-07 10:40 ` Loftus, Ciara @ 2016-04-07 11:48 ` Tan, Jianfeng 2016-04-07 15:29 ` Loftus, Ciara 2016-04-07 15:42 ` Yuanhan Liu 2 siblings, 1 reply; 11+ messages in thread From: Tan, Jianfeng @ 2016-04-07 11:48 UTC (permalink / raw) To: Rich Lane, dev; +Cc: Tetsuya Mukawa, Yuanhan Liu Hi, On 4/7/2016 8:29 AM, Rich Lane wrote: > If the vhost PMD were configured with more queues than the guest, the old > code would segfault in rte_vhost_enable_guest_notification due to a NULL > virtqueue pointer. > > Fixes: ee584e9710b9 ("vhost: add driver on top of the library") > Signed-off-by: Rich Lane <rich.lane@bigswitch.com> > --- > drivers/net/vhost/rte_eth_vhost.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c > index b1eb082..310cbef 100644 > --- a/drivers/net/vhost/rte_eth_vhost.c > +++ b/drivers/net/vhost/rte_eth_vhost.c > @@ -265,7 +265,6 @@ new_device(struct virtio_net *dev) > vq->device = dev; > vq->internal = internal; > vq->port = eth_dev->data->port_id; > - rte_vhost_enable_guest_notification(dev, vq->virtqueue_id, 0); > } > for (i = 0; i < eth_dev->data->nb_tx_queues; i++) { > vq = eth_dev->data->tx_queues[i]; > @@ -274,9 +273,11 @@ new_device(struct virtio_net *dev) > vq->device = dev; > vq->internal = internal; > vq->port = eth_dev->data->port_id; > - rte_vhost_enable_guest_notification(dev, vq->virtqueue_id, 0); > } > > + for (i = 0; i < dev->virt_qp_nb * VIRTIO_QNUM; i++) > + rte_vhost_enable_guest_notification(dev, i, 0); > + > dev->flags |= VIRTIO_DEV_RUNNING; > dev->priv = eth_dev; > eth_dev->data->dev_link.link_status = ETH_LINK_UP; Just one question, when qemu starts a vm, usually, only one queue is enabled, then only 1 tx and 1 rx are called rte_vhost_enable_guest_notification; but after system is up, we use "ethtool -K eth0 combined x" to enable multiqueues, there's no chance to call rte_vhost_enable_guest_notification for other queues, right? Thanks, Jianfeng ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] vhost: call rte_vhost_enable_guest_notification only on enabled queues 2016-04-07 11:48 ` Tan, Jianfeng @ 2016-04-07 15:29 ` Loftus, Ciara 2016-04-07 15:42 ` Yuanhan Liu 2016-04-07 16:13 ` Tan, Jianfeng 0 siblings, 2 replies; 11+ messages in thread From: Loftus, Ciara @ 2016-04-07 15:29 UTC (permalink / raw) To: Tan, Jianfeng, Rich Lane, dev; +Cc: Tetsuya Mukawa, Yuanhan Liu > On 4/7/2016 8:29 AM, Rich Lane wrote: > > If the vhost PMD were configured with more queues than the guest, the > old > > code would segfault in rte_vhost_enable_guest_notification due to a NULL > > virtqueue pointer. > > > > Fixes: ee584e9710b9 ("vhost: add driver on top of the library") > > Signed-off-by: Rich Lane <rich.lane@bigswitch.com> > > --- > > drivers/net/vhost/rte_eth_vhost.c | 5 +++-- > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/net/vhost/rte_eth_vhost.c > b/drivers/net/vhost/rte_eth_vhost.c > > index b1eb082..310cbef 100644 > > --- a/drivers/net/vhost/rte_eth_vhost.c > > +++ b/drivers/net/vhost/rte_eth_vhost.c > > @@ -265,7 +265,6 @@ new_device(struct virtio_net *dev) > > vq->device = dev; > > vq->internal = internal; > > vq->port = eth_dev->data->port_id; > > - rte_vhost_enable_guest_notification(dev, vq- > >virtqueue_id, 0); > > } > > for (i = 0; i < eth_dev->data->nb_tx_queues; i++) { > > vq = eth_dev->data->tx_queues[i]; > > @@ -274,9 +273,11 @@ new_device(struct virtio_net *dev) > > vq->device = dev; > > vq->internal = internal; > > vq->port = eth_dev->data->port_id; > > - rte_vhost_enable_guest_notification(dev, vq- > >virtqueue_id, 0); > > } > > > > + for (i = 0; i < dev->virt_qp_nb * VIRTIO_QNUM; i++) > > + rte_vhost_enable_guest_notification(dev, i, 0); > > + > > dev->flags |= VIRTIO_DEV_RUNNING; > > dev->priv = eth_dev; > > eth_dev->data->dev_link.link_status = ETH_LINK_UP; > > Just one question, when qemu starts a vm, usually, only one queue is > enabled, then only 1 tx and 1 rx are called > rte_vhost_enable_guest_notification; but after system is up, we use > "ethtool -K eth0 combined x" to enable multiqueues, there's no chance to > call rte_vhost_enable_guest_notification for other queues, right? As far as I know, virt_qp_nb will report the number of queues available, regardless of their state enabled/disabled. So for example if we have 4 queues, but only one enabled, virt_qp_nb should still = 4 and rte_vhost_enable_guest_notification() will be called for all of these queues. Thanks, Ciara > > Thanks, > Jianfeng ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] vhost: call rte_vhost_enable_guest_notification only on enabled queues 2016-04-07 15:29 ` Loftus, Ciara @ 2016-04-07 15:42 ` Yuanhan Liu 2016-04-07 16:13 ` Tan, Jianfeng 1 sibling, 0 replies; 11+ messages in thread From: Yuanhan Liu @ 2016-04-07 15:42 UTC (permalink / raw) To: Loftus, Ciara; +Cc: Tan, Jianfeng, Rich Lane, dev, Tetsuya Mukawa On Thu, Apr 07, 2016 at 03:29:32PM +0000, Loftus, Ciara wrote: > > On 4/7/2016 8:29 AM, Rich Lane wrote: > > > If the vhost PMD were configured with more queues than the guest, the > > old > > > code would segfault in rte_vhost_enable_guest_notification due to a NULL > > > virtqueue pointer. > > > > > > Fixes: ee584e9710b9 ("vhost: add driver on top of the library") > > > Signed-off-by: Rich Lane <rich.lane@bigswitch.com> > > > --- > > > drivers/net/vhost/rte_eth_vhost.c | 5 +++-- > > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > > > diff --git a/drivers/net/vhost/rte_eth_vhost.c > > b/drivers/net/vhost/rte_eth_vhost.c > > > index b1eb082..310cbef 100644 > > > --- a/drivers/net/vhost/rte_eth_vhost.c > > > +++ b/drivers/net/vhost/rte_eth_vhost.c > > > @@ -265,7 +265,6 @@ new_device(struct virtio_net *dev) > > > vq->device = dev; > > > vq->internal = internal; > > > vq->port = eth_dev->data->port_id; > > > - rte_vhost_enable_guest_notification(dev, vq- > > >virtqueue_id, 0); > > > } > > > for (i = 0; i < eth_dev->data->nb_tx_queues; i++) { > > > vq = eth_dev->data->tx_queues[i]; > > > @@ -274,9 +273,11 @@ new_device(struct virtio_net *dev) > > > vq->device = dev; > > > vq->internal = internal; > > > vq->port = eth_dev->data->port_id; > > > - rte_vhost_enable_guest_notification(dev, vq- > > >virtqueue_id, 0); > > > } > > > > > > + for (i = 0; i < dev->virt_qp_nb * VIRTIO_QNUM; i++) > > > + rte_vhost_enable_guest_notification(dev, i, 0); > > > + > > > dev->flags |= VIRTIO_DEV_RUNNING; > > > dev->priv = eth_dev; > > > eth_dev->data->dev_link.link_status = ETH_LINK_UP; > > > > Just one question, when qemu starts a vm, usually, only one queue is > > enabled, then only 1 tx and 1 rx are called > > rte_vhost_enable_guest_notification; but after system is up, we use > > "ethtool -K eth0 combined x" to enable multiqueues, there's no chance to > > call rte_vhost_enable_guest_notification for other queues, right? > > As far as I know, virt_qp_nb will report the number of queues available, regardless of their state enabled/disabled. So for example if we have 4 queues, but only one enabled, virt_qp_nb should still = 4 and rte_vhost_enable_guest_notification() will be called for all of these queues. Yes. --yliu ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] vhost: call rte_vhost_enable_guest_notification only on enabled queues 2016-04-07 15:29 ` Loftus, Ciara 2016-04-07 15:42 ` Yuanhan Liu @ 2016-04-07 16:13 ` Tan, Jianfeng 1 sibling, 0 replies; 11+ messages in thread From: Tan, Jianfeng @ 2016-04-07 16:13 UTC (permalink / raw) To: Loftus, Ciara, Rich Lane, dev; +Cc: Tetsuya Mukawa, Yuanhan Liu On 4/7/2016 11:29 PM, Loftus, Ciara wrote: >> On 4/7/2016 8:29 AM, Rich Lane wrote: >>> If the vhost PMD were configured with more queues than the guest, the >> old >>> code would segfault in rte_vhost_enable_guest_notification due to a NULL >>> virtqueue pointer. >>> >>> Fixes: ee584e9710b9 ("vhost: add driver on top of the library") >>> Signed-off-by: Rich Lane <rich.lane@bigswitch.com> >>> --- >>> drivers/net/vhost/rte_eth_vhost.c | 5 +++-- >>> 1 file changed, 3 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/net/vhost/rte_eth_vhost.c >> b/drivers/net/vhost/rte_eth_vhost.c >>> index b1eb082..310cbef 100644 >>> --- a/drivers/net/vhost/rte_eth_vhost.c >>> +++ b/drivers/net/vhost/rte_eth_vhost.c >>> @@ -265,7 +265,6 @@ new_device(struct virtio_net *dev) >>> vq->device = dev; >>> vq->internal = internal; >>> vq->port = eth_dev->data->port_id; >>> - rte_vhost_enable_guest_notification(dev, vq- >>> virtqueue_id, 0); >>> } >>> for (i = 0; i < eth_dev->data->nb_tx_queues; i++) { >>> vq = eth_dev->data->tx_queues[i]; >>> @@ -274,9 +273,11 @@ new_device(struct virtio_net *dev) >>> vq->device = dev; >>> vq->internal = internal; >>> vq->port = eth_dev->data->port_id; >>> - rte_vhost_enable_guest_notification(dev, vq- >>> virtqueue_id, 0); >>> } >>> >>> + for (i = 0; i < dev->virt_qp_nb * VIRTIO_QNUM; i++) >>> + rte_vhost_enable_guest_notification(dev, i, 0); >>> + >>> dev->flags |= VIRTIO_DEV_RUNNING; >>> dev->priv = eth_dev; >>> eth_dev->data->dev_link.link_status = ETH_LINK_UP; >> Just one question, when qemu starts a vm, usually, only one queue is >> enabled, then only 1 tx and 1 rx are called >> rte_vhost_enable_guest_notification; but after system is up, we use >> "ethtool -K eth0 combined x" to enable multiqueues, there's no chance to >> call rte_vhost_enable_guest_notification for other queues, right? > As far as I know, virt_qp_nb will report the number of queues available, regardless of their state enabled/disabled. So for example if we have 4 queues, but only one enabled, virt_qp_nb should still = 4 and rte_vhost_enable_guest_notification() will be called for all of these queues. Oh, yes. I failed to really get multiqueue configured right, which leads to the wrong conclusion. Sorry. Thanks, Jianfeng > > Thanks, > Ciara > >> Thanks, >> Jianfeng ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] vhost: call rte_vhost_enable_guest_notification only on enabled queues 2016-04-07 0:29 [dpdk-dev] [PATCH] vhost: call rte_vhost_enable_guest_notification only on enabled queues Rich Lane 2016-04-07 10:40 ` Loftus, Ciara 2016-04-07 11:48 ` Tan, Jianfeng @ 2016-04-07 15:42 ` Yuanhan Liu 2016-04-07 17:20 ` Thomas Monjalon 2 siblings, 1 reply; 11+ messages in thread From: Yuanhan Liu @ 2016-04-07 15:42 UTC (permalink / raw) To: Rich Lane; +Cc: dev, Tetsuya Mukawa On Wed, Apr 06, 2016 at 05:29:06PM -0700, Rich Lane wrote: > If the vhost PMD were configured with more queues than the guest, the old > code would segfault in rte_vhost_enable_guest_notification due to a NULL > virtqueue pointer. > > Fixes: ee584e9710b9 ("vhost: add driver on top of the library") > Signed-off-by: Rich Lane <rich.lane@bigswitch.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Thanks. --yliu ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] vhost: call rte_vhost_enable_guest_notification only on enabled queues 2016-04-07 15:42 ` Yuanhan Liu @ 2016-04-07 17:20 ` Thomas Monjalon 2016-04-08 1:45 ` Tetsuya Mukawa 0 siblings, 1 reply; 11+ messages in thread From: Thomas Monjalon @ 2016-04-07 17:20 UTC (permalink / raw) To: Rich Lane; +Cc: dev, Yuanhan Liu, Tetsuya Mukawa > > If the vhost PMD were configured with more queues than the guest, the old > > code would segfault in rte_vhost_enable_guest_notification due to a NULL > > virtqueue pointer. > > > > Fixes: ee584e9710b9 ("vhost: add driver on top of the library") > > Signed-off-by: Rich Lane <rich.lane@bigswitch.com> > > Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Applied, thanks ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] vhost: call rte_vhost_enable_guest_notification only on enabled queues 2016-04-07 17:20 ` Thomas Monjalon @ 2016-04-08 1:45 ` Tetsuya Mukawa 2016-04-08 6:14 ` Yuanhan Liu 0 siblings, 1 reply; 11+ messages in thread From: Tetsuya Mukawa @ 2016-04-08 1:45 UTC (permalink / raw) To: Thomas Monjalon, Rich Lane; +Cc: dev, Yuanhan Liu On 2016/04/08 2:20, Thomas Monjalon wrote: >>> If the vhost PMD were configured with more queues than the guest, the old >>> code would segfault in rte_vhost_enable_guest_notification due to a NULL >>> virtqueue pointer. >>> >>> Fixes: ee584e9710b9 ("vhost: add driver on top of the library") >>> Signed-off-by: Rich Lane <rich.lane@bigswitch.com> >> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> > Applied, thanks Hi Rich and Yuanhan, I am sorry for late reply. I was out of office yesterday. I've tested it also today, and seems to be good. Thanks, Tetsuya ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] vhost: call rte_vhost_enable_guest_notification only on enabled queues 2016-04-08 1:45 ` Tetsuya Mukawa @ 2016-04-08 6:14 ` Yuanhan Liu 2016-04-08 7:03 ` Tetsuya Mukawa 0 siblings, 1 reply; 11+ messages in thread From: Yuanhan Liu @ 2016-04-08 6:14 UTC (permalink / raw) To: Tetsuya Mukawa; +Cc: Thomas Monjalon, Rich Lane, dev On Fri, Apr 08, 2016 at 10:45:33AM +0900, Tetsuya Mukawa wrote: > On 2016/04/08 2:20, Thomas Monjalon wrote: > >>> If the vhost PMD were configured with more queues than the guest, the old > >>> code would segfault in rte_vhost_enable_guest_notification due to a NULL > >>> virtqueue pointer. > >>> > >>> Fixes: ee584e9710b9 ("vhost: add driver on top of the library") > >>> Signed-off-by: Rich Lane <rich.lane@bigswitch.com> > >> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> > > Applied, thanks > > Hi Rich and Yuanhan, > > I am sorry for late reply. I was out of office yesterday. Tetsuya, no worry! Man takes leaves, and isn't the reason we have 2 or more maintainers on some blocks? :) --yliu > I've tested it also today, and seems to be good. > > Thanks, > Tetsuya ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] vhost: call rte_vhost_enable_guest_notification only on enabled queues 2016-04-08 6:14 ` Yuanhan Liu @ 2016-04-08 7:03 ` Tetsuya Mukawa 0 siblings, 0 replies; 11+ messages in thread From: Tetsuya Mukawa @ 2016-04-08 7:03 UTC (permalink / raw) To: Yuanhan Liu; +Cc: Thomas Monjalon, Rich Lane, dev On 2016/04/08 15:14, Yuanhan Liu wrote: > On Fri, Apr 08, 2016 at 10:45:33AM +0900, Tetsuya Mukawa wrote: >> On 2016/04/08 2:20, Thomas Monjalon wrote: >>>>> If the vhost PMD were configured with more queues than the guest, the old >>>>> code would segfault in rte_vhost_enable_guest_notification due to a NULL >>>>> virtqueue pointer. >>>>> >>>>> Fixes: ee584e9710b9 ("vhost: add driver on top of the library") >>>>> Signed-off-by: Rich Lane <rich.lane@bigswitch.com> >>>> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> >>> Applied, thanks >> Hi Rich and Yuanhan, >> >> I am sorry for late reply. I was out of office yesterday. > Tetsuya, no worry! Man takes leaves, and isn't the reason we have 2 or > more maintainers on some blocks? :) > > --yliu Yeah, thanks! Tetsuya ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2016-04-08 7:03 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-04-07 0:29 [dpdk-dev] [PATCH] vhost: call rte_vhost_enable_guest_notification only on enabled queues Rich Lane 2016-04-07 10:40 ` Loftus, Ciara 2016-04-07 11:48 ` Tan, Jianfeng 2016-04-07 15:29 ` Loftus, Ciara 2016-04-07 15:42 ` Yuanhan Liu 2016-04-07 16:13 ` Tan, Jianfeng 2016-04-07 15:42 ` Yuanhan Liu 2016-04-07 17:20 ` Thomas Monjalon 2016-04-08 1:45 ` Tetsuya Mukawa 2016-04-08 6:14 ` Yuanhan Liu 2016-04-08 7:03 ` Tetsuya Mukawa
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).