diff --git a/sim/eth_packet.svh b/sim/eth_packet.svh
index 577bd5d73c63283abff16e50d63ab9978d62f5f4..d3827caf21699e9f7276f08a92ecde516c17a2f7 100644
--- a/sim/eth_packet.svh
+++ b/sim/eth_packet.svh
@@ -132,16 +132,26 @@ class EthPacket;
    function bit equal(ref EthPacket b, int flags = _zero);
       
       if(src != b.src || dst != b.dst || ethertype != b.ethertype)
-        return 0;
-
+        begin
+           $display("notequal: hdr");
+           return 0;
+        end
+      
       if(is_q ^ b.is_q)
-        return 0;
+        begin
+           $display("notequal: q");
+           return 0;
+        end
 
       if(is_q && (vid != b.vid || pcp != b.pcp))
         return 0;
 
       if(payload != b.payload)
-        return 0;
+        begin
+           $display("notequal: payload");
+           return 0;
+        end
+//        return 0;
 
       if(flags & CMP_STATUS)
         if(error ^ b.error)
@@ -213,9 +223,10 @@ class EthPacketGenerator;
    static const int      DMAC       = (1<<1);
    static const int      ETHERTYPE  = (1<<2);
    static const int      VID        = (1<<3);
-   static const int      PCP        = (1<<4);
+   static const int      PCP        = (1<<4); 
    static const int      PAYLOAD    = (1<<5);
-   static const int TX_OOB             = (1<<6);
+   static const int      SEQ_PAYLOAD    = (1<<7);
+  static const int TX_OOB             = (1<<6);
    static const int      ALL        = SMAC | DMAC | VID | ETHERTYPE | PCP | PAYLOAD ;
    
 
@@ -242,7 +253,7 @@ class EthPacketGenerator;
    protected function dyn_array random_bvec(int size);
       byte v[];
       int i;
-      $display("RandomBVEC %d", size);
+//      $display("RandomBVEC %d", size);
       
       v       = new[size](v);
       for(i=0;i<size;i++)
@@ -252,6 +263,18 @@ class EthPacketGenerator;
       
    endfunction // random_bvec
    
+   protected function dyn_array seq_payload(int size);
+      byte v[];
+      int i;
+      
+      v       = new[size](v);
+      for(i=0;i<size;i++)
+        v[i]  = i;
+   
+      return v;
+      
+   endfunction // random_bvec
+   
    
    function automatic EthPacket gen();
       EthPacket pkt;
@@ -266,16 +289,19 @@ class EthPacketGenerator;
       pkt.is_q                           = template.is_q;
       pkt.vid                            = template.vid;
       pkt.pcp                            = template.pcp;
+      pkt.has_smac                        = template.has_smac;
+      
 
-      $display("Size min %d max %d", min_size, max_size);
-
+//      $display("Size min %d max %d", min_size, max_size);
+ 
       if(r_flags & PAYLOAD) pkt.payload  = random_bvec($dist_uniform(seed, min_size, max_size));
+      else if(r_flags & SEQ_PAYLOAD) pkt.payload  = seq_payload($dist_uniform(seed, min_size, max_size));
       else pkt.payload                   = template.payload;
 
       if(r_flags & TX_OOB)
         begin
            pkt.ts.frame_id               = m_current_frame_id++;
-           pkt.oob_type                = TX_FID;
+           pkt.oob_type                  = TX_FID;
         end
       
       return pkt;