On Fri, Jul 10, 2020 at 04:32:35PM +0200, Daniel Borkmann wrote: > On 7/10/20 8:41 AM, Hangbin Liu wrote: > > On Fri, Jul 10, 2020 at 12:40:11AM +0200, Daniel Borkmann wrote: > > > > +SEC("xdp_redirect_map_multi") > > > > +int xdp_redirect_map_multi_prog(struct xdp_md *ctx) > > > > +{ > > > > + long *value; > > > > + u32 key = 0; > > > > + > > > > + /* count packet in global counter */ > > > > + value = bpf_map_lookup_elem(&rxcnt, &key); > > > > + if (value) > > > > + *value += 1; > > > > + > > > > + return bpf_redirect_map_multi(&forward_map, &null_map, > > > > + BPF_F_EXCLUDE_INGRESS); > > > > > > Why not extending to allow use-case like ... > > > > > > return bpf_redirect_map_multi(&fwd_map, NULL, BPF_F_EXCLUDE_INGRESS); > > > > > > ... instead of requiring a dummy/'null' map? > > > > I planed to let user set NULL, but the arg2_type is ARG_CONST_MAP_PTR, which > > not allow NULL pointer. > > Right, but then why not adding a new type ARG_CONST_MAP_PTR_OR_NULL ? Yes, that's what I plan for next step. Thanks Hangbin