Layered Protocol Response Mechanism

I am working on DisplayPort Protocol, has two terminologies, Source (Master) and Sink (Slave).
There is 1-bit bi-directional AUX channel which access the DPCD register (which is at sink side).
All data sends serially onto AUX channel.
To read/write from DPCD register, source initiate AUX transaction with appropriate command (read/write), address of DPCD register (let’s say 50h), length (how much sequential locations we want to access from our given address) (let’s say length = 3 means we’ll access 50h, 51h & 52h), data (in case of write operation only).
This request will be got at sink side, and it will process accordingly and generates response transaction, which will have resp (ACK / NACK / DEFER) & read_data (in case of read request only)

My question is, in sink side the AUX request will be sampled in monitor class and to generate according to response I must have that req in sequence class. So how to get that req in sink side sequence back?

  1. By connecting sink monitor to the sequencer and send it to the sequence?
  2. By connecting sink monitor to the sink driver and from driver send it to the sequence by using method put() method or seq_item_port.item_done(rsp)?

Which one is better and Why?
My point of view is 1st approach I have to use, because in 2nd approach the response data should sample directly from the interface to the driver. That is the correct practice for it right ?