anchor.diff:  	{udp_module,_} -> udp_opt(Opts, R, As);
   	inet        -> udp_opt(Opts, R, As);
   	inet6       -> udp_opt(Opts, R, As);
  +	{netns,NS} ->
  +	    case prim_inet:is_sockopt_val(netns, NS) of
  +		true ->
  +		    list_opt(Opts, R#udp_opts { fd = [Opt] }, As);
  +		false ->
  +		    {error, badarg}
  +	    end;
   	{Name,Val} when is_atom(Name) -> udp_add(Name, Val, R, Opts, As);
   	_ -> {error, badarg}
       end;
  
positive.code: 	{tcp_module,_}  -> con_opt(Opts, R, As);
  	inet        -> con_opt(Opts, R, As);
  	inet6       -> con_opt(Opts, R, As);
  	{Name,Val} when is_atom(Name) -> con_add(Name, Val, R, Opts, As);
  	_ -> {error, badarg}
      end;
  
negative.code: 	Error ->
  	    Error
      end;
  open(Fd, _Addr, _Port, Opts, Protocol, Family, Type, Module)
    when is_integer(Fd) ->
      fdopen(Fd, Opts, Protocol, Family, Type, Module).
  
  bindx(S, [Addr], Port0) ->
  