Sequence layering/nesting and generating ethernet data packets

Hi all, I have a question regarding sequence layering.

If I want to generate Ethernet packets: preamble-sfd-dest.addr-source.addr-…

Is sequence layering the best way to do it?

I looked at the example in ovm cookbook’s codes, that example illustrated how to layer multiple words into a burst. But in the Ethernet case, the length of preamble, sfd and etc are different, so I must creat individual sequence classes for them right? Is the inter-layer translator a MUST in this case?

Another thought is using nesting sequences, in the packet sequence body():

task body()
//generate preamble sequence;
// then generate sfd sequence;

endtask

But I don’t quite understand how to implement the driver to handle such sequence, since the sequence is longer than one clock cycle, so I guess @(posedge clk) would’t work?

Any thoughts?