anchor.diff:      ?SEV_IPRINT("await terminate"),
       Reason = tpp_udp_handler_await_terminate(Parent),
       ?SEV_IPRINT("terminate with ~p", [Reason]),
  -    tpp_udp_sock_close(Sock),
  +    tpp_udp_sock_close(Sock, Path),
       ?SEV_IPRINT("terminating"),
       exit(Reason).
   
  
positive.code: traffic_ping_pong_small_sendto_and_recvfrom_udp6(doc) ->
      [];
  traffic_ping_pong_small_sendto_and_recvfrom_udp6(_Config) when is_list(_Config) ->
      Msg = l2b(?TPP_SMALL),
      Num = ?TPP_SMALL_NUM,
      tc_try(traffic_ping_pong_small_sendto_and_recvfrom_udp6,
             fun() ->
                     ?TT(?SECS(45)),
                     InitState = #{domain => inet,
                                   proto  => udp,
                                   msg    => Msg,
                                   num    => Num},
                     ok = traffic_ping_pong_sendto_and_recvfrom_udp(InitState)
  
negative.code:                            end
                     end},
           #{desc => "bind to local address",
             cmd  => fun(#{domain := local,
                           sock := Sock, local_sa := LSA} = _State) ->
                             case socket:bind(Sock, LSA) of
                                 {ok, _} ->
                                     ok;
                                 {error, _} = ERROR ->
                                     ERROR
                             end;
                        (#{sock := Sock, local_sa := LSA} = State) ->
                             case socket:bind(Sock, LSA) of
                                 {ok, Port} ->
                                     {ok, State#{port => Port}};
  