How to accesses an interface FIELD, from a driver class?

[DRIVER CLASS]`include"generator_class.sv"

class driver;

virtual intf.drv drv_if;

packet p2recv;
//packet p2intf;

mailbox#(packet)gen2drv;

function new(mailbox#(packet)gen2drv, virtual intf.drv drv_if);
this.gen2drv = gen2drv;
this.drv_if = drv_if;
endfunction

virtual task send();
drv_if.DRCB.haddr <= p2recv.add;
//drv_if.hwrite <= 'b0;
$display(“%d”,drv_if.DRCB.haddr);
endtask

virtual task display123();
$display(“%p recieved packet”,p2recv);
endtask

virtual task start234();
display123();
begin
gen2drv.get(p2recv);
send();
$display(“%p DRIVER_OBJ”,p2recv);
$display(“%0d”,p2recv.add);
end
endtask

endclass
[/DRIVER CLASS]

[INTERFACE]
interface intf(input bit clk);
logic [31:0] haddr;
logic [31:0] hwdata;
logic [31:0] hrdata;

logic hwrite;
logic hmastlock;
logic hreq;
logic hgrant;
logic hsel;
logic hready;
logic hresp;

logic [1:0] htrans;

logic [2:0] hsize;
logic [2:0] hburst;

logic [3:0] hprot;

clocking DRCB@(posedge clk);

output haddr;
output hwdata;
output hwrite;
//input hwrite;
output hmastlock;
output htrans;
output hsize;
output hburst;
output hprot;

endclocking

modport drv (input clk,clocking DRCB);

endinterface
[/INTERFACE]

[TOP FILE]

module toptry();
logic clk=0;
initial
begin
clk=~clk;
end

intf bus_if(clk); // interface instantiation
test1 TB (bus_if); // Pass the interface
endmodule
[/TOP FILE]

[PACKAGE]
package pkg;

`include"env_class.sv"

endpackage
[/PACKAGE]

[ENV Class]
`include"driver_class.sv"

class env;

generator gen;
driver drv;
virtual intf.drv drv_if;

function new(virtual intf.drv drv_if);
//this.gen=gen;
//this.drv=drv;
this.drv_if = drv_if;
endfunction

virtual function void build();
gen = new();
drv = new(gen.gen2drv,drv_if);
endfunction

task start();
gen.start123();
drv.start234();
//drv.send();
endtask

task run();
build();
start();
//drv.send();
endtask
endclass
[/ENV Class]

I am not mentioning the PACKET CLASS and GENERATOR CLASS.
My Main aim is to drive the “p2recv” (object) fields to the interface fields.
But somehow i am unable to do so,
Actually i want to use the virtual interface dynamically inside the task to access the interface, so one of my colleague said to “bind this interface in the top to the static one.”
But i didn’t understood what they are trying to say.
Please any body can elaborate, if i want to drive my p2recv fields to interface fields ??

Thank you in advance

you create env class in the top and pass interface in its argument as
env env_h=new(bus_if.drv);