From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Hemminger Subject: Re: [RFC v2 6/7] net/af_xdp: load BPF file Date: Thu, 8 Mar 2018 15:15:00 -0800 Message-ID: <20180308151500.2365b677@xeon-e3> References: <20180308135249.28187-1-qi.z.zhang@intel.com> <20180308135249.28187-7-qi.z.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: dev@dpdk.org, magnus.karlsson@intel.com, bjorn.topel@intel.com To: Qi Zhang Return-path: Received: from mail-pg0-f66.google.com (mail-pg0-f66.google.com [74.125.83.66]) by dpdk.org (Postfix) with ESMTP id 3C3C25F0F for ; Fri, 9 Mar 2018 00:15:09 +0100 (CET) Received: by mail-pg0-f66.google.com with SMTP id i14so2847633pgv.3 for ; Thu, 08 Mar 2018 15:15:09 -0800 (PST) In-Reply-To: <20180308135249.28187-7-qi.z.zhang@intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Thu, 8 Mar 2018 21:52:48 +0800 Qi Zhang wrote: > +struct bpf_insn prog[] = { > + { > + .code = 0x85, //call imm > + .dst_reg = 0, > + .src_reg = 0, > + .off = 0, > + .imm = BPF_FUNC_xdpsk_redirect, > + }, > + { > + .code = 0x95, //exit > + .dst_reg = 0, > + .src_reg = 0, > + .off = 0, > + .imm = 0, > + }, > +}; > + > +int load_bpf_file(void) > +{ > + int fd; > + > + fd = bpf_load_program(BPF_PROG_TYPE_XDP, prog, > + ARRAY_SIZE(prog), > + "GPL", 0, > + bpf_log_buf, BPF_LOG_BUF_SIZE); Still have license conflict here. The short bpf program is in BSD code and therefore is BSD, not GPL. But kernel won't let you load non-GPL programs. Please check with Intel open source compliance to find a GPL solution. A possible license safe solution is more complex. You need to provide original program source for the BPF program under dual clause (GPL-2/BSD-3); then read in that object file and load it. A user wishing to exercise their GPL rights can then take your source file and modify and create new file to load. Doing this also creates additional GPL issues for appliance vendors using AF_XDP. They need to make available the source of all these XDP BPF programs. Complying with mixed licenses is hard.