anchor.diff:  
       rt_loop:set_rt(State, NewRT)
       ;
  +
  +handle_custom_message({send_rt, From}, State) ->
  +    comm:send_local(From, {send_rt_response, rt_loop:get_rt(State)}),
  +    State;
   
   handle_custom_message(_Message, _State) -> unknown_event.
   %% userdevguide-end rt_frtchord:handle_custom_message
  
positive.code: get_sticky_entries(#rt_t{nodes=Nodes}) ->
      util:gb_trees_foldl(fun(_K, #rt_entry{type=sticky} = E, Acc) -> [E|Acc];
                        (_,_,Acc) -> Acc
                    end, [], Nodes)
      .
  
  % @doc Check if a node exists in the routing table
  -spec entry_exists(EntryKey :: key(), rt()) -> boolean().
  
negative.code: %-spec add_entry(Node :: node:node_type(), Type :: entry_type(), RT :: rt()) -> rt().
  -spec add_entry(node:node_type(),'normal' | 'source' | 'sticky',rt()) -> rt().
  add_entry(Node, Type, RT) ->
      entry_learning_and_filtering(Node, Type, RT).
  
  % @doc Add a sticky entry to the routing table
  -spec add_sticky_entry(Entry :: node:node_type(), rt()) -> rt().
  add_sticky_entry(Entry, RT) ->
     add_entry(Entry, sticky, RT).
  
  % @doc Add the source entry to the routing table
  -spec add_source_entry(Entry :: node:node_type(), rt()) -> rt().
  