In reply to Tudor Timi:
Yep, that’s right but I assume you are saying to pass the eth_frame to the ipv4_frame sequence? That works in simple cases but ethernet frames can get complex and even if, for example, you set the total mtu at the eth level other things may randomize in the lower levels that make it impossible for that length to be exactly obeyed. In other words, strict top-down build of the ethernet frame would get pretty complex and unwieldy for some cases.
Probably the answer is don’t use layered sequencers in this way but rather combine the two classes (ie: eth_frame and ipv4_frame in this case) into a single sequence generator.
Another options would be to parameterize the constraints of an extension of the ipv4_class and then use that class in the ipv4_sequencer and adjust the values of these parameters via a response to the ipv4 sequencer. Not really a great way though and pretty limiting but it would work.
I think I have my answer in that it’s just not possible or mabye even really “uvm’ish” to be passing an item constraint from one sequence to another. I can see the logic of that but also see it as limiting too. Believe ‘e’ would have the same problem but not sure…