In reply to chr_sue:
If you don’t specialize the uvm_sequence on line 22, then req is just uvm_sequence_item and you will get an elaboration error on line 33 for the req.data reference. You must have:
class tx_sequence extends uvm_sequence #(tx_item(P));