On Thu, May 7, 2020 at 7:40 AM Toshiaki Makita
<[email protected]> wrote:
>
> On 2020/05/06 0:37, William Tu wrote:
> > On Tue, Apr 21, 2020 at 11:47:03PM +0900, Toshiaki Makita wrote:...
> >> +/* Convert odp_port to devmap_idx in output action */
> >> +static int
> >> +convert_port_to_devmap_idx(struct nlattr *actions, size_t actions_len)
> >> +{
> >> + struct nlattr *a;
> >> + unsigned int left;
> >> + bool output_seen = false;
> >> +
> >> + NL_ATTR_FOR_EACH_UNSAFE(a, left, actions, actions_len) {
> >> + int type = nl_attr_type(a);
> >> +
> >> + if (output_seen) {
> >> + VLOG_DBG("XDP does not support packet copy");
> >> + return EOPNOTSUPP;
> >> + }
> >> +
> >> + if (type == OVS_ACTION_ATTR_OUTPUT) {
> >> + odp_port_t *port;
> >> + struct netdev_info *netdev_info;
> >> +
> >> + port = CONST_CAST(odp_port_t *,
> >> + nl_attr_get_unspec(a, sizeof(odp_port_t)));
> >> + netdev_info = find_netdev_info(*port);
> >> + if (!netdev_info) {
> >> + VLOG_DBG("Cannot output to port %u without XDP prog
> >> attached",
> >> + *port);
> >
> > Hi Toshiaki,
> >
> > Does this mean all of my port attached to ovs need to have XDP prog
> > attached?
>
> Yes.
>
> > Why can't a port with xdp offload receive a packet and forward to a
> > non-xdp-offload
> > port? Is this a limitation in kernel?
>
> Yes. In many cases XDP_REDIRECT does not work when redirect target device
> does not
> have XDP prog attached. Attaching an XDP prog is just a workaround and that's
> not
> sufficient, e.g. veth does not work even when doing that, but we don't have
> any
> other (right) way to workaround it. Linux netdev community is working on this
> problem. Once we have a sane way to fix it, we no longer need to attach an
> XDP prog.
>
I see, thank you!
William
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev