UVM Default and UVM ALL ON

what does this abstract and physical means ? and whys gaps are there in between methods bits.

parameter UVM_MACRO_NUMFLAGS    = 17;
//A=ABSTRACT Y=PHYSICAL
//F=REFERENCE, S=SHALLOW, D=DEEP
//K=PACK, R=RECORD, P=PRINT, M=COMPARE, C=COPY
//--------------------------- AYFSD K R P M C
parameter UVM_DEFAULT     = 'b000010101010101;
parameter UVM_ALL_ON      = 'b000000101010101;
parameter UVM_FLAGS_ON    = 'b000000101010101;
parameter UVM_FLAGS_OFF   = 0;

see in uvm_object_globals.svh

Abstract and physical bits originate from the Transaction Level Modeling (TLM) in the SystemC standard, which likely borrowed the terminology from another networking protocol. These bits can be utilized at your discretion when implementing user-defined policies.

There are no gaps; it’s just that certain bits have a corresponding “NO” setting. See How to add UVM_NOCOMPARE to fields of extended class