fix ignore rule
diff --git a/simics-workspace/modules/afdxES/analyse-binary-search.dml b/simics-workspace/modules/afdxES/analyse-binary-search.dml
index afae962..51ee6ab 100644
--- a/simics-workspace/modules/afdxES/analyse-binary-search.dml
+++ b/simics-workspace/modules/afdxES/analyse-binary-search.dml
@@ -15,7 +15,7 @@ method BinarySearchAnalyseCfgCamArray(analyse_cfg_cam *array, analyse_cfg_cam T)
     local bool is_bigger;

     low = 0;
-	high = ANALYSE_CFG_CAM_MAX_SIZE - 1; // fix me!
+	high = $analyse_cfg_cam_index - 1;

 	while (low <= high) {
 		mid = (low + high) / 2;
diff --git a/simics-workspace/modules/afdxES/config-tables-log.dml b/simics-workspace/modules/afdxES/config-tables-log.dml
index e69de29..fe1c18c 100644
--- a/simics-workspace/modules/afdxES/config-tables-log.dml
+++ b/simics-workspace/modules/afdxES/config-tables-log.dml
@@ -0,0 +1,15 @@
+dml 1.2;
+
+import "config-tables.dml";
+
+method print_analyse_cfg_cam_table() {
+    local uint8 i = 0;
+    for (; i < $analyse_cfg_cam_index; ++i) {
+        log "info" : "The $analyse_cfg_cam_array[%d].cam_data_part1.RETENTION = %d", i, $analyse_cfg_cam_array[i].cam_data_part1.RETENTION;
+        log "info" : "The $analyse_cfg_cam_array[%d].cam_data_part1.ICMP_TYPE_ID = %d", i, $analyse_cfg_cam_array[i].cam_data_part1.ICMP_TYPE_ID;
+        log "info" : "The $analyse_cfg_cam_array[%d].cam_data_part1.MULTICAST_ID = %d", i, $analyse_cfg_cam_array[i].cam_data_part1.MULTICAST_ID;
+        log "info" : "The $analyse_cfg_cam_array[%d].cam_data_part2.DEST_IP = %d", i, $analyse_cfg_cam_array[i].cam_data_part2.DEST_IP;
+        log "info" : "The $analyse_cfg_cam_array[%d].cam_data_part3.VL = %d", i, $analyse_cfg_cam_array[i].cam_data_part3.VL;
+        log "info" : "The $analyse_cfg_cam_array[%d].cam_data_part3.DEST_UDP = %d", i, $analyse_cfg_cam_array[i].cam_data_part3.DEST_UDP;
+    }
+}
diff --git a/simics-workspace/modules/afdxES/log.dml b/simics-workspace/modules/afdxES/log.dml
index e69de29..352fd25 100644
--- a/simics-workspace/modules/afdxES/log.dml
+++ b/simics-workspace/modules/afdxES/log.dml
@@ -0,0 +1,3 @@
+dml 1.2;
+
+import "config-tables-log.dml";
diff --git a/simics-workspace/modules/afdxES/pci-register.dml b/simics-workspace/modules/afdxES/pci-register.dml
index d5687d0..b705daa 100644
--- a/simics-workspace/modules/afdxES/pci-register.dml
+++ b/simics-workspace/modules/afdxES/pci-register.dml
@@ -3,6 +3,7 @@ dml 1.2;
 import "pci-device.dml";          // Generic PCI device
 import "binary-search.dml";
 import "quick-sort.dml";
+import "log.dml";

 // Basic bank declaration
 bank pci_config {
@@ -1348,10 +1349,12 @@ bank pciport{
 		    log "info" ,2: "before write_analyse_cam##########################################################";
 			log "info" ,2:"analyse_cfg_cam_addr =%x",$this;
             //if ($mode == 0) {
-                call $write_analyse_cam();
-                log "info"  ,2: "Method write_analyse_cam has been called";
-                call $QuickSortAnalyseCamArray($analyse_cfg_cam_array);
-                log "info"  ,2: "Method QuickSort has been called";
+            call $write_analyse_cam();
+            log "info"  ,2: "Method write_analyse_cam has been called";
+            call $QuickSortAnalyseCamArray($analyse_cfg_cam_array);
+            log "info"  ,2: "Method QuickSort has been called";
+            call $print_analyse_cfg_cam_table();
+
             //} else {
             //    local uint32 length = 4 * 4;
              //   local uint8 *data = new uint8[length];
diff --git a/simics-workspace/modules/afdxES/rm-binary-search.dml b/simics-workspace/modules/afdxES/rm-binary-search.dml
index e7630e0..d6e548f 100644
--- a/simics-workspace/modules/afdxES/rm-binary-search.dml
+++ b/simics-workspace/modules/afdxES/rm-binary-search.dml
@@ -15,7 +15,7 @@ method BinarySearchRMCfgCamArray(rm_cfg_cam *array, rm_cfg_cam T) -> (int result
     local bool is_bigger;

 	low = 0;
-	high = RM_CFG_CAM_MAX_SIZE - 1; // fix me
+	high = $rm_cfg_cam_index - 1; // fix me

 	while (low <= high)	{
 		mid = (low + high) / 2;
diff --git a/simics-workspace/modules/afdxES/unpacket_frame.dml b/simics-workspace/modules/afdxES/unpacket_frame.dml
index 030e977..cff77e2 100644
--- a/simics-workspace/modules/afdxES/unpacket_frame.dml
+++ b/simics-workspace/modules/afdxES/unpacket_frame.dml
@@ -50,7 +50,8 @@ method unpacket_frame(uint8 *buffer,uint32 size)->(RX_MIB rx_mib)
 	T.cam_data_part3.DEST_UDP = dest_udp;
 	//find port through  item group. single has IP dest address ,mulitple hasn't IP dest address

-	call $BinarySearchAnalyseCfgCamArray(($analyse_cfg_cam_array), T) -> (port_id);
+	call $BinarySearchAnalyseCfgCamArray(($analyse_cfg_cam_array), T) -> (port_id);
+    port_id = $analyse_cfg_cam_array[port_id].address;

 	enable_network_A = cast((*(buffer + INTERFACE_ID_ADDR)>>5)&0x1,uint1);
 	enable_network_B = cast((*(buffer + INTERFACE_ID_ADDR)>>6)&0x1,uint1);