Seq_item_port

Hi, Is it possible to use seq_item_port in monitor to pull transaction?
I am new to UVM. Saw one code in that environment monitor’s run phase this was done:


                        seq_item_port.get_next_item(a_tx); // a_tx is transaction type
       				vif.a = $random;
         		seq_item_port.item_done();

And in whole environment this was the only connection using seq_item_port declared in agent:


                  a_drvr.seq_item_port.connect(a_seqr.seq_item_export);

get_next_item and item_done methods were used in Driver and monitor.
Here is my question: How can seq_item_port work in monitor although its only connection between driver and sequencer?

In reply to vickydhudashia:

The seq_item_port is only designed to connect the sequencer to the driver. It is not meant for any other use.

The purpose of the monitor is to monitor the agent’s bus interface and ‘reverse’ all of the traffic seen on the interface. It will send out the snooped transactions via an analysis_port.