anchor.diff:  
   -define(SERVER, ?MODULE).
   
  --define(SYNC_GET_TIMEOUT,     5000).
  --define(SYNC_SET_TIMEOUT,     5000).
  --define(DEFAULT_ASYNC_EXPIRE, 5000).
  --define(EXTRA_INFO,           undefined).
  -
  --define(SNMP_AGENT_PORT,      161).
  -
  +-define(DEFAULT_SYNC_TIMEOUT,           5000).
  +-define(DEFAULT_SYNC_GET_TIMEOUT,       ?DEFAULT_SYNC_TIMEOUT).
  +-define(DEFAULT_SYNC_GET_NEXT_TIMEOUT,  ?DEFAULT_SYNC_TIMEOUT).
  +-define(DEFAULT_SYNC_GET_BULK_TIMEOUT,  ?DEFAULT_SYNC_TIMEOUT).
  +-define(DEFAULT_SYNC_SET_TIMEOUT,       ?DEFAULT_SYNC_TIMEOUT).
  +
  +-define(DEFAULT_ASYNC_EXPIRE,           5000).
  +-define(DEFAULT_ASYNC_GET_TIMEOUT,      ?DEFAULT_ASYNC_EXPIRE).
  +-define(DEFAULT_ASYNC_GET_NEXT_TIMEOUT, ?DEFAULT_ASYNC_EXPIRE).
  +-define(DEFAULT_ASYNC_GET_BULK_TIMEOUT, ?DEFAULT_ASYNC_EXPIRE).
  +-define(DEFAULT_ASYNC_SET_TIMEOUT,      ?DEFAULT_ASYNC_EXPIRE).
  +
  +-define(EXTRA_INFO,                     undefined).
  +
  +-define(SNMP_AGENT_PORT,                161).
  +
  +-define(GET_SYNC_GET_TIMEOUT(SendOpts), 
  +	get_opt(timeout, ?DEFAULT_SYNC_GET_TIMEOUT, SendOpts)).
  +-define(GET_SYNC_GET_NEXT_TIMEOUT(SendOpts), 
  +	get_opt(timeout, ?DEFAULT_SYNC_GET_NEXT_TIMEOUT, SendOpts)).
  +-define(GET_SYNC_GET_BULK_TIMEOUT(SendOpts), 
  +	get_opt(timeout, ?DEFAULT_SYNC_GET_BULK_TIMEOUT, SendOpts)).
  +-define(SYNC_SET_TIMEOUT(SendOpts), 
  +	get_opt(timeout, ?DEFAULT_SYNC_SET_TIMEOUT, SendOpts)).
  +
  +-define(GET_ASYNC_GET_EXPIRE(SendOpts), 
  +	get_opt(expire, ?DEFAULT_ASYNC_GET_EXPIRE, SendOpts)).
  +-define(GET_ASYNC_GET_NEXT_EXPIRE(SendOpts), 
  +	get_opt(expire, ?DEFAULT_ASYNC_GET_NEXT_EXPIRE, SendOpts)).
  +-define(GET_ASYNC_GET_BULK_EXPIRE(SendOpts), 
  +	get_opt(expire, ?DEFAULT_ASYNC_GET_BULK_EXPIRE, SendOpts)).
  +-define(GET_ASYNC_SET_EXPIRE(SendOpts), 
  +	get_opt(expire, ?DEFAULT_ASYNC_SET_EXPIRE, SendOpts)).
  +
  +-define(GET_EXTRA(SendOpts), get_opt(extra, ?DEFAULT_EXTRA, SendOpts)).
   
   -ifdef(snmp_debug).
   -define(GS_START_LINK(Args),
  
positive.code: handle_sync_get_bulk(Pid, UserId, TargetName, CtxName, 
  		     NonRep, MaxRep, Oids, Timeout, 
  		     ExtraInfo, From, State) ->
      ?vtrace("handle_sync_get_bulk -> entry with"
  	    "~n   Pid:        ~p"
  	    "~n   UserId:     ~p"
  	    "~n   TargetName: ~p"
  	    "~n   CtxName:    ~p"
  	    "~n   NonRep:     ~p"
  	    "~n   MaxRep:     ~p"
  	    "~n   Oids:       ~p"
  	    "~n   Timeout:    ~p"
  	    "~n   From:       ~p", 
  	    [Pid, UserId, TargetName, CtxName, NonRep, MaxRep, Oids, 
  	     Timeout, From]),
      case agent_data(TargetName, SendOpts) of
  	{ok, RegType, Addr, Port, Vsn, MsgData} ->
  	    ?vtrace("handle_sync_get_bulk -> send a ~p message", [Vsn]),
  	    ReqId  = send_get_bulk_request(Oids, Vsn, MsgData, Addr, Port, 
  					   NonRep, MaxRep, ExtraInfo, State),
  	    ?vdebug("handle_sync_get_bulk -> ReqId: ~p", [ReqId]),
  	    Msg    = {sync_timeout, ReqId, From},
  	    Ref    = erlang:send_after(Timeout, self(), Msg),
  	    MonRef = erlang:monitor(process, Pid),
  	    ?vtrace("handle_sync_get_bulk -> MonRef: ~p", [MonRef]),
  	    Req    = #request{id       = ReqId,
  			      user_id  = UserId, 
  			      reg_type = RegType, 
  			      target   = TargetName, 
  			      addr     = Addr,
  			      port     = Port,
  			      type     = get_bulk, 
  			      data     = MsgData, 
  			      ref      = Ref, 
  			      mon      = MonRef, 
  			      from     = From},
  	    ets:insert(snmpm_request_table, Req),
  	    ok;
  
  
negative.code: 	[
  	 {context, CtxName},
  	 {timeout, Timeout},
  	 {extra,   ExtraInfo}
  	],
      handle_sync_get(Pid, UserId, TargetName, Oids, SendOpts, From, State).
  
  