In reply to Arun_Rajha:
You missed cas3:
Case 3 can be used in case of pipelined or out-of-order transactions.
In your case 1 you are sending the rsp back twice, i.e. with item_done(rsp) and through the rsp_port. Doing this is not a good idea.