diff --git a/simics-workspace/modules/afdxES/constant.dml b/simics-workspace/modules/afdxES/constant.dml
index 9ae5dd1..c7ee005 100644
--- a/simics-workspace/modules/afdxES/constant.dml
+++ b/simics-workspace/modules/afdxES/constant.dml
@@ -63,9 +63,9 @@ constant FIFO_SIZE = 8192;  // 8K
 constant ITEM_NUM  = 128;   // ÏîÊý

 //for port queue
-constant PORT_DATA_SIZE = 8192;   // ×î´ó֡³¤¶È
-constant PORT_FIFO_SIZE = 65535;  // 8KÊý¾Ý
-constant PORT_ITEM_NUM  = 2622;   // ÏîÊý
+constant PORT_DATA_SIZE = 8192;
+constant PORT_FIFO_SIZE = 65535;
+constant PORT_ITEM_NUM  = 2622;
 constant PORT_ITEM_SIZE = 8096;
 constant PORT_QUEUE_MAX_SIZE = 64*1024;

@@ -84,10 +84,10 @@ constant To664Middleware = 1;
 constant CACHE_ITEM_MAXSIZE = 10 * 1024;
 constant PORT_CACHE_MAXSIZE = 1024 * 1024;

+// for mib
+constant MACA_MIB_CONFIG = 1;
+constant MACB_MIB_CONFIG = 2;
+
 data uint32 tx_buf_overflow_number[256];
 data uint32 rx_buf_overflow_number[256];
-data MAC_MIB maca_mib;
-data MAC_MIB macb_mib;
-data RX_MIB rx_mib;
-data TX_MIB tx_mib;
 data uint32 Table[256];
diff --git a/simics-workspace/modules/afdxES/packet-description.dml b/simics-workspace/modules/afdxES/packet-description.dml
index c1ffc9d..5706023 100644
--- a/simics-workspace/modules/afdxES/packet-description.dml
+++ b/simics-workspace/modules/afdxES/packet-description.dml
@@ -113,55 +113,3 @@ struct PortQueue {
     int32 queue_full;
 }

-// for MIB
-struct MAC_MIB {
-    uint32 crc_error;   				//crc checksum error
-    uint32 delete_little_64;  			//delete the frame that size is little than 64B
-    uint32 delete_big_1518;   			//delete the frame that size is bigger than 1518B
-    uint32 input_frame_count;  			// input frame count
-    uint32 input_64_127_count;			//input frame size between 64 and 127
-    uint32 input_128_255_count;			//input frame size between 128 and 255
-    uint32 input_256_511_count;			//input frame size between 256 and 511
-    uint32 input_512_1023_count;		//input frame size between 512 and 1023
-    uint32 input_1024_1518_count;		//input frame size between 1024 and 1023
-    uint32 input_frame_byte_count; 		// input frame byte count
-    uint32 output_frame_count;  		// output frame byte count
-    uint32 output_64_127_count;			//output frame size between 64 and 127
-    uint32 output_128_255_count;		//output frame size between 128 and 255
-    uint32 output_256_511_count;		//output frame size between 256 and 511
-    uint32 output_512_1023_count;		//output frame size between 512 and 1023
-    uint32 output_1024_1518_count;		//output frame size between 1024 and 1023
-    uint32 output_frame_byte_count;  	// output frame byte count
-    uint32 first_bit_error_count;		//first bit error
-    uint32 ipchecksum_error_count;		//ip checksum error
-    uint32 delete_bit_2048_count;		//delete the frame bigger than 2048
-}
-
-struct RX_MIB {
-    uint32 disable_A_filt_count;
-    uint32 disable_B_filt_count;
-    uint32 A_integrated_filt_count;
-    uint32 B_integrated_filt_count;
-    uint32 vl_id_filt_count;
-    uint32 redunt_filt_count;
-    uint32 port_filt_count;
-    uint32 ip_checksum_filt_count;
-    uint32 ip_length_error_filt_count;
-    uint32 udp_length_error_filt_count;
-    uint32 ip_fragment_error_filt_count ;
-    uint32 overflow_count;
-    uint32 rx_icmp_reback_count;
-    uint32 rx_ip_data_count;
-    uint32 rx_udp_data_count;
-    uint32 rx_icmp_data_count;
-    uint32 icmp_overflow_count;
-    uint32 rx_icmp_big_max_count;
-    uint32 rx_buffer_clear_delete_count;
-    uint32 size;
-}
-
-struct TX_MIB {
-    uint32 tx_ip_count;
-    uint32 tx_udp_count;
-    uint32 tx_icmp_count;
-}
diff --git a/simics-workspace/modules/afdxES/packet-frame.dml b/simics-workspace/modules/afdxES/packet-frame.dml
index 9525f8b..36f31b1 100644
--- a/simics-workspace/modules/afdxES/packet-frame.dml
+++ b/simics-workspace/modules/afdxES/packet-frame.dml
@@ -7,6 +7,7 @@ import "packet-description.dml";
 import "change_endian.dml";
 import "crc.dml";
 import "log.dml";
+import "mib_info.dml";

 data bool init_send_time;