Home | History | Annotate | Download | only in src

Lines Matching refs:rule

173 					IPACMERR("unable to add the rule delete from cache\n");
180 IPACMDBG("On wan-iface reset added below rule successfully\n");
234 bool NatApp::ChkForDup(const nat_table_entry *rule)
241 if(cache[cnt].private_ip == rule->private_ip &&
242 cache[cnt].target_ip == rule->target_ip &&
243 cache[cnt].private_port == rule->private_port &&
244 cache[cnt].target_port == rule->target_port &&
245 cache[cnt].protocol == rule->protocol)
247 log_nat(rule->protocol,rule->private_ip,rule->target_ip,rule->private_port,\
248 rule->target_port,"Duplicate Rule\n");
257 int NatApp::DeleteEntry(const nat_table_entry *rule)
262 log_nat(rule->protocol,rule->private_ip,rule->target_ip,rule->private_port,\
263 rule->target_port,"for deletion\n");
268 if(cache[cnt].private_ip == rule->private_ip &&
269 cache[cnt].target_ip == rule->target_ip &&
270 cache[cnt].private_port == rule->private_port &&
271 cache[cnt].target_port == rule->target_port &&
272 cache[cnt].protocol == rule->protocol)
299 int NatApp::AddEntry(const nat_table_entry *rule)
307 log_nat(rule->protocol,rule->private_ip,rule->target_ip,rule->private_port,\
308 rule->target_port,"for addition\n");
309 if(isAlgPort(rule->protocol, rule->private_port) ||
310 isAlgPort(rule->protocol, rule->target_port))
316 if(rule->private_ip == 0 ||
317 rule->target_ip == 0 ||
318 rule->private_port == 0 ||
319 rule->target_port == 0 ||
320 rule->protocol == 0)
326 if(!ChkForDup(rule))
347 nat_rule.private_ip = rule->private_ip;
348 nat_rule.target_ip = rule->target_ip;
349 nat_rule.target_port = rule->target_port;
350 nat_rule.private_port = rule->private_port;
351 nat_rule.public_port = rule->public_port;
352 nat_rule.protocol = rule->protocol;
354 if(isPwrSaveIf(rule->private_ip) ||
355 isPwrSaveIf(rule->target_ip))
366 IPACMERR("unable to add the rule\n");
373 cache[cnt].private_ip = rule->private_ip;
374 cache[cnt].target_ip = rule->target_ip;
375 cache[cnt].target_port = rule->target_port;
376 cache[cnt].private_port = rule->private_port;
377 cache[cnt].protocol = rule->protocol;
379 cache[cnt].public_port = rule->public_port;
380 cache[cnt].dst_nat = rule->dst_nat;
387 IPACMERR("Duplicate rule. Ignore it\n");
393 IPACMDBG_H("Added rule(%d) successfully\n", cnt);
397 IPACMDBG_H("Cached rule(%d) successfully\n", cnt);
403 void NatApp::UpdateCTUdpTs(nat_table_entry *rule, uint32_t new_ts)
409 iptodot("Private IP:", rule->private_ip);
410 iptodot("Target IP:", rule->target_ip);
411 IPACMDBG("Private Port: %d, Target Port: %d\n", rule->private_port, rule->target_port);
436 if(rule->protocol == IPPROTO_UDP)
438 nfct_set_attr_u8(ct, ATTR_L4PROTO, rule->protocol);
443 nfct_set_attr_u8(ct, ATTR_L4PROTO, rule->protocol);
447 if(rule->dst_nat == false)
449 nfct_set_attr_u32(ct, ATTR_IPV4_SRC, htonl(rule->private_ip));
450 nfct_set_attr_u16(ct, ATTR_PORT_SRC, htons(rule->private_port));
452 nfct_set_attr_u32(ct, ATTR_IPV4_DST, htonl(rule->target_ip));
453 nfct_set_attr_u16(ct, ATTR_PORT_DST, htons(rule->target_port));
459 nfct_set_attr_u32(ct, ATTR_IPV4_SRC, htonl(rule->target_ip));
460 nfct_set_attr_u16(ct, ATTR_PORT_SRC, htons(rule->target_port));
463 nfct_set_attr_u16(ct, ATTR_PORT_DST, htons(rule->public_port));
474 rule->protocol, nfct_get_attr_u32(ct, ATTR_TIMEOUT));
480 DeleteEntry(rule);
484 rule->timestamp = new_ts;
488 if(rule->protocol == IPPROTO_UDP)
497 if(rule->dst_nat == false)
499 entry.src.ipAddr = htonl(rule->private_ip);
500 entry.src.port = rule->private_port;
501 entry.dst.ipAddr = htonl(rule->target_ip);
502 entry.dst.port = rule->target_port;
507 entry.src.ipAddr = htonl(rule->target_ip);
508 entry.src.port = rule->target_port;
510 entry.dst.port = rule->public_port;
525 rule->timestamp = new_ts;
546 IPACMERR("unable to retrieve timeout for rule hanle: %d\n", cache[cnt].rule_hdl);
637 IPACMERR("unable to delete the rule\n");
688 IPACMERR("unable to add the rule delete from cache\n");
695 IPACMDBG("On power reset added below rule successfully\n");
818 IPACMDBG("Flushing dummy temp rule");
866 IPACMERR("unable to delete the rule\n");
871 IPACMDBG("won't delete the rule\n");
876 IPACMDBG("won't delete the rule for entry %d, enabled %d\n",cnt, cache[cnt].enabled);
904 IPACMERR("unable to delete the rule\n");
918 void NatApp::CacheEntry(const nat_table_entry *rule)
922 if(rule->private_ip == 0 ||
923 rule->target_ip == 0 ||
924 rule->private_port == 0 ||
925 rule->target_port == 0 ||
926 rule->protocol == 0)
932 if(!ChkForDup(rule))
955 cache[cnt].private_ip = rule->private_ip;
956 cache[cnt].target_ip = rule->target_ip;
957 cache[cnt].target_port = rule->target_port;
958 cache[cnt].private_port = rule->private_port;
959 cache[cnt].protocol = rule->protocol;
961 cache[cnt].public_port = rule->public_port;
962 cache[cnt].public_ip = rule->public_ip;
963 cache[cnt].dst_nat = rule->dst_nat;
970 IPACMERR("Duplicate rule. Ignore it\n");
974 IPACMDBG("Cached rule(%d) successfully\n", cnt);