flow_dissector: implements flow dissector BPF hook
[linux-2.6-microblaze.git] / kernel / bpf / syscall.c
index 3c9636f..b3c2d09 100644 (file)
@@ -1615,6 +1615,9 @@ static int bpf_prog_attach(const union bpf_attr *attr)
        case BPF_LIRC_MODE2:
                ptype = BPF_PROG_TYPE_LIRC_MODE2;
                break;
+       case BPF_FLOW_DISSECTOR:
+               ptype = BPF_PROG_TYPE_FLOW_DISSECTOR;
+               break;
        default:
                return -EINVAL;
        }
@@ -1636,6 +1639,9 @@ static int bpf_prog_attach(const union bpf_attr *attr)
        case BPF_PROG_TYPE_LIRC_MODE2:
                ret = lirc_prog_attach(attr, prog);
                break;
+       case BPF_PROG_TYPE_FLOW_DISSECTOR:
+               ret = skb_flow_dissector_bpf_prog_attach(attr, prog);
+               break;
        default:
                ret = cgroup_bpf_prog_attach(attr, ptype, prog);
        }
@@ -1688,6 +1694,8 @@ static int bpf_prog_detach(const union bpf_attr *attr)
                return sockmap_get_from_fd(attr, BPF_PROG_TYPE_SK_SKB, NULL);
        case BPF_LIRC_MODE2:
                return lirc_prog_detach(attr);
+       case BPF_FLOW_DISSECTOR:
+               return skb_flow_dissector_bpf_prog_detach(attr);
        default:
                return -EINVAL;
        }