Merge "Fix loop issue in IPANAT table"
diff --git a/ipanat/src/ipa_nat_drvi.c b/ipanat/src/ipa_nat_drvi.c
old mode 100644
new mode 100755
index a46bab2..692509f
--- a/ipanat/src/ipa_nat_drvi.c
+++ b/ipanat/src/ipa_nat_drvi.c
@@ -56,6 +56,11 @@
if(IPA_NAT_SW_PARAM_INDX_TBL_ENTRY_BYTE == param_type)
{
value = (value << INDX_TBL_ENTRY_SIZE_IN_BITS);
+ temp &= 0x0000FFFF;
+ }
+ else
+ {
+ temp &= 0xFFFF0000;
}
temp = (temp | value);
@@ -571,7 +576,7 @@
}
}
- return cnt;
+ return 0;
}
/**
@@ -2242,7 +2247,7 @@
{
atl_one = 1;
ipa_nati_print_rule(&tbl_ptr[cnt],
- (cnt + ipv4_nat_cache.ip4_tbl[tbl_hdl-1].table_entries -1));
+ (cnt + ipv4_nat_cache.ip4_tbl[tbl_hdl-1].table_entries));
}
}
if(!atl_one)
@@ -2288,7 +2293,7 @@
{
atl_one = 1;
ipa_nati_print_index_rule(&indx_tbl_ptr[cnt],
- (cnt + ipv4_nat_cache.ip4_tbl[tbl_hdl-1].table_entries -1));
+ (cnt + ipv4_nat_cache.ip4_tbl[tbl_hdl-1].table_entries));
}
}
if(!atl_one)
@@ -2302,15 +2307,27 @@
void ipa_nati_print_rule(struct ipa_nat_rule *param, uint32_t rule_id)
{
- struct ipa_nat_sw_rule sw_rule;
- memcpy(&sw_rule, param, sizeof(sw_rule));
+ struct ipa_nat_sw_rule sw_rule;
+ memcpy(&sw_rule, param, sizeof(sw_rule));
+ uint32_t ip_addr = 0;
- IPADUMP("rule-id:%d Trgt-IP:0x%x Trgt-Port:%d ",rule_id, sw_rule.target_ip, sw_rule.target_port);
- IPADUMP("Priv-IP:0x%x Priv-Port:%d ", sw_rule.private_ip, sw_rule.private_port);
+ IPADUMP("rule-id:%d ",rule_id);
+ ip_addr = sw_rule.target_ip;
+ IPADUMP("Trgt-IP:%d.%d.%d.%d ",
+ ((ip_addr & 0xFF000000) >> 24), ((ip_addr & 0x00FF0000) >> 16),
+ ((ip_addr & 0x0000FF00) >> 8), ((ip_addr & 0x000000FF)));
+
+ IPADUMP("Trgt-Port:%d Priv-Port:%d ",sw_rule.target_port, sw_rule.private_port);
+
+ ip_addr = sw_rule.private_ip;
+ IPADUMP("Priv-IP:%d.%d.%d.%d ",
+ ((ip_addr & 0xFF000000) >> 24), ((ip_addr & 0x00FF0000) >> 16),
+ ((ip_addr & 0x0000FF00) >> 8), ((ip_addr & 0x000000FF)));
+
IPADUMP("Pub-Port:%d Nxt-indx:%d ", sw_rule.public_port, sw_rule.next_index);
IPADUMP("IP-cksm-delta:0x%x En-bit:0x%x ", sw_rule.ip_chksum, sw_rule.enable);
IPADUMP("TS:0x%x Proto:0x%x ", sw_rule.time_stamp, sw_rule.protocol);
- IPADUMP("Prv-indx:%d nxt-indx:%d Tcp-udp-cksum-delta:0x%x", sw_rule.prev_index, sw_rule.next_index, sw_rule.tcp_udp_chksum);
+ IPADUMP("Prv-indx:%d Tcp-udp-cksum-delta:0x%x", sw_rule.prev_index, sw_rule.tcp_udp_chksum);
IPADUMP("\n");
return;
}