On Sat, Jun 29, 2019 at 08:23:25AM +0300, Ilias Apalodimas wrote:

[...]

+
+static int netsec_xdp(struct net_device *ndev, struct netdev_bpf *xdp)
+{
+       struct netsec_priv *priv = netdev_priv(ndev);
+
+       switch (xdp->command) {
+       case XDP_SETUP_PROG:
+               return netsec_xdp_setup(priv, xdp->prog, xdp->extack);
+       case XDP_QUERY_PROG:
+               xdp->prog_id = priv->xdp_prog ? priv->xdp_prog->aux->id : 0;
xdp_attachment family to save bpf flags?

+               return 0;
+       default:
+               return -EINVAL;
+       }
+}
+
static const struct net_device_ops netsec_netdev_ops = {
        .ndo_init               = netsec_netdev_init,
        .ndo_uninit             = netsec_netdev_uninit,
@@ -1537,6 +1842,8 @@ static const struct net_device_ops netsec_netdev_ops = {
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_validate_addr      = eth_validate_addr,
        .ndo_do_ioctl           = netsec_netdev_ioctl,
+       .ndo_xdp_xmit           = netsec_xdp_xmit,
+       .ndo_bpf                = netsec_xdp,
};

static int netsec_of_probe(struct platform_device *pdev,
--
2.20.1


--
Regards,
Ivan Khoronzhuk

Reply via email to