• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/net/netfilter/

Lines Matching refs:ct

63 			  struct nf_conn *ct,
68 struct nf_conn *ct,
73 struct nf_conn *ct,
81 struct nf_conn *ct,
87 struct nf_conn *ct,
93 struct nf_conn *ct,
99 struct nf_conn *ct,
114 struct nf_conn *ct, enum ip_conntrack_info ctinfo,
117 struct nf_ct_h323_master *info = &nfct_help(ct)->help.ct_h323_info;
219 static int get_h245_addr(struct nf_conn *ct, unsigned char *data,
224 int family = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.l3num;
255 static int expect_rtp_rtcp(struct sk_buff **pskb, struct nf_conn *ct,
270 if (!get_h245_addr(ct, *data, taddr, &addr, &port) ||
271 memcmp(&addr, &ct->tuplehash[dir].tuple.src.u3, sizeof(addr)) ||
281 if ((rtp_exp = nf_conntrack_expect_alloc(ct)) == NULL)
283 nf_conntrack_expect_init(rtp_exp, ct->tuplehash[!dir].tuple.src.l3num,
284 &ct->tuplehash[!dir].tuple.src.u3,
285 &ct->tuplehash[!dir].tuple.dst.u3,
289 if ((rtcp_exp = nf_conntrack_expect_alloc(ct)) == NULL) {
293 nf_conntrack_expect_init(rtcp_exp, ct->tuplehash[!dir].tuple.src.l3num,
294 &ct->tuplehash[!dir].tuple.src.u3,
295 &ct->tuplehash[!dir].tuple.dst.u3,
298 if (memcmp(&ct->tuplehash[dir].tuple.src.u3,
299 &ct->tuplehash[!dir].tuple.dst.u3,
300 sizeof(ct->tuplehash[dir].tuple.src.u3)) &&
302 ct->status & IPS_NAT_MASK) {
304 ret = nat_rtp_rtcp(pskb, ct, ctinfo, data, dataoff,
329 struct nf_conn *ct,
342 if (!get_h245_addr(ct, *data, taddr, &addr, &port) ||
343 memcmp(&addr, &ct->tuplehash[dir].tuple.src.u3, sizeof(addr)) ||
348 if ((exp = nf_conntrack_expect_alloc(ct)) == NULL)
350 nf_conntrack_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
351 &ct->tuplehash[!dir].tuple.src.u3,
352 &ct->tuplehash[!dir].tuple.dst.u3,
356 if (memcmp(&ct->tuplehash[dir].tuple.src.u3,
357 &ct->tuplehash[!dir].tuple.dst.u3,
358 sizeof(ct->tuplehash[dir].tuple.src.u3)) &&
360 ct->status & IPS_NAT_MASK) {
362 ret = nat_t120(pskb, ct, ctinfo, data, dataoff, taddr,
379 struct nf_conn *ct,
388 ret = expect_rtp_rtcp(pskb, ct, ctinfo, data, dataoff,
397 ret = expect_rtp_rtcp(pskb, ct, ctinfo, data, dataoff,
407 static int process_olc(struct sk_buff **pskb, struct nf_conn *ct,
419 ret = process_h245_channel(pskb, ct, ctinfo, data, dataoff,
437 process_h245_channel(pskb, ct, ctinfo, data, dataoff,
455 ret = expect_t120(pskb, ct, ctinfo, data, dataoff,
466 static int process_olca(struct sk_buff **pskb, struct nf_conn *ct,
484 ret = process_h245_channel(pskb, ct, ctinfo, data, dataoff,
503 ret = expect_rtp_rtcp(pskb, ct, ctinfo, data, dataoff,
512 ret = expect_rtp_rtcp(pskb, ct, ctinfo, data, dataoff,
522 ret = expect_t120(pskb, ct, ctinfo, data, dataoff,
533 static int process_h245(struct sk_buff **pskb, struct nf_conn *ct,
542 return process_olc(pskb, ct, ctinfo, data, dataoff,
551 return process_olca(pskb, ct, ctinfo, data, dataoff,
568 struct nf_conn *ct, enum ip_conntrack_info ctinfo)
586 while (get_tpkt_data(pskb, protoff, ct, ctinfo,
589 NF_CT_DUMP_TUPLE(&ct->tuplehash[CTINFO2DIR(ctinfo)].tuple);
604 if (process_h245(pskb, ct, ctinfo, &data, dataoff, &mscm) < 0)
631 int get_h225_addr(struct nf_conn *ct, unsigned char *data,
636 int family = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.l3num;
664 static int expect_h245(struct sk_buff **pskb, struct nf_conn *ct,
677 if (!get_h225_addr(ct, *data, taddr, &addr, &port) ||
678 memcmp(&addr, &ct->tuplehash[dir].tuple.src.u3, sizeof(addr)) ||
683 if ((exp = nf_conntrack_expect_alloc(ct)) == NULL)
685 nf_conntrack_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
686 &ct->tuplehash[!dir].tuple.src.u3,
687 &ct->tuplehash[!dir].tuple.dst.u3,
691 if (memcmp(&ct->tuplehash[dir].tuple.src.u3,
692 &ct->tuplehash[!dir].tuple.dst.u3,
693 sizeof(ct->tuplehash[dir].tuple.src.u3)) &&
695 ct->status & IPS_NAT_MASK) {
697 ret = nat_h245(pskb, ct, ctinfo, data, dataoff, taddr,
769 struct nf_conn *ct,
782 if (!get_h225_addr(ct, *data, taddr, &addr, &port) || port == 0)
788 callforward_do_filter(&addr, &ct->tuplehash[!dir].tuple.src.u3,
789 ct->tuplehash[!dir].tuple.src.l3num)) {
795 if ((exp = nf_conntrack_expect_alloc(ct)) == NULL)
797 nf_conntrack_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
798 &ct->tuplehash[!dir].tuple.src.u3, &addr,
802 if (memcmp(&ct->tuplehash[dir].tuple.src.u3,
803 &ct->tuplehash[!dir].tuple.dst.u3,
804 sizeof(ct->tuplehash[dir].tuple.src.u3)) &&
806 ct->status & IPS_NAT_MASK) {
808 ret = nat_callforwarding(pskb, ct, ctinfo, data, dataoff,
824 static int process_setup(struct sk_buff **pskb, struct nf_conn *ct,
839 ret = expect_h245(pskb, ct, ctinfo, data, dataoff,
847 (set_h225_addr) && ct->status && IPS_NAT_MASK &&
848 get_h225_addr(ct, *data, &setup->destCallSignalAddress,
850 memcmp(&addr, &ct->tuplehash[!dir].tuple.src.u3, sizeof(addr))) {
854 NIP6(*(struct in6_addr *)&ct->tuplehash[!dir].tuple.src.u3),
855 ntohs(ct->tuplehash[!dir].tuple.src.u.tcp.port));
858 &ct->tuplehash[!dir].tuple.src.u3,
859 ct->tuplehash[!dir].tuple.src.u.tcp.port);
865 (set_h225_addr) && ct->status & IPS_NAT_MASK &&
866 get_h225_addr(ct, *data, &setup->sourceCallSignalAddress,
868 memcmp(&addr, &ct->tuplehash[!dir].tuple.dst.u3, sizeof(addr))) {
872 NIP6(*(struct in6_addr *)&ct->tuplehash[!dir].tuple.dst.u3),
873 ntohs(ct->tuplehash[!dir].tuple.dst.u.tcp.port));
876 &ct->tuplehash[!dir].tuple.dst.u3,
877 ct->tuplehash[!dir].tuple.dst.u.tcp.port);
884 ret = process_olc(pskb, ct, ctinfo, data, dataoff,
896 struct nf_conn *ct,
907 ret = expect_h245(pskb, ct, ctinfo, data, dataoff,
915 ret = process_olc(pskb, ct, ctinfo, data, dataoff,
926 static int process_connect(struct sk_buff **pskb, struct nf_conn *ct,
937 ret = expect_h245(pskb, ct, ctinfo, data, dataoff,
945 ret = process_olc(pskb, ct, ctinfo, data, dataoff,
956 static int process_alerting(struct sk_buff **pskb, struct nf_conn *ct,
967 ret = expect_h245(pskb, ct, ctinfo, data, dataoff,
975 ret = process_olc(pskb, ct, ctinfo, data, dataoff,
986 static int process_facility(struct sk_buff **pskb, struct nf_conn *ct,
998 return expect_callforwarding(pskb, ct, ctinfo, data,
1006 ret = expect_h245(pskb, ct, ctinfo, data, dataoff,
1014 ret = process_olc(pskb, ct, ctinfo, data, dataoff,
1025 static int process_progress(struct sk_buff **pskb, struct nf_conn *ct,
1036 ret = expect_h245(pskb, ct, ctinfo, data, dataoff,
1044 ret = process_olc(pskb, ct, ctinfo, data, dataoff,
1055 static int process_q931(struct sk_buff **pskb, struct nf_conn *ct,
1065 ret = process_setup(pskb, ct, ctinfo, data, dataoff,
1069 ret = process_callproceeding(pskb, ct, ctinfo, data, dataoff,
1074 ret = process_connect(pskb, ct, ctinfo, data, dataoff,
1078 ret = process_alerting(pskb, ct, ctinfo, data, dataoff,
1082 ret = process_facility(pskb, ct, ctinfo, data, dataoff,
1086 ret = process_progress(pskb, ct, ctinfo, data, dataoff,
1100 ret = process_h245(pskb, ct, ctinfo, data, dataoff,
1112 struct nf_conn *ct, enum ip_conntrack_info ctinfo)
1130 while (get_tpkt_data(pskb, protoff, ct, ctinfo,
1133 NF_CT_DUMP_TUPLE(&ct->tuplehash[CTINFO2DIR(ctinfo)].tuple);
1147 if (process_q931(pskb, ct, ctinfo, &data, dataoff, &q931) < 0)
1211 static struct nf_conntrack_expect *find_expect(struct nf_conn *ct,
1225 if (exp && exp->master == ct)
1244 static int expect_q931(struct sk_buff **pskb, struct nf_conn *ct,
1249 struct nf_ct_h323_master *info = &nfct_help(ct)->help.ct_h323_info;
1260 if (get_h225_addr(ct, *data, &taddr[i], &addr, &port) &&
1261 memcmp(&addr, &ct->tuplehash[dir].tuple.src.u3,
1270 if ((exp = nf_conntrack_expect_alloc(ct)) == NULL)
1272 nf_conntrack_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
1274 &ct->tuplehash[!dir].tuple.src.u3 :
1276 &ct->tuplehash[!dir].tuple.dst.u3,
1282 if (nat_q931 && ct->status & IPS_NAT_MASK) { /* Need NAT */
1283 ret = nat_q931(pskb, ct, ctinfo, data, taddr, i, port, exp);
1301 static int process_grq(struct sk_buff **pskb, struct nf_conn *ct,
1310 if (set_ras_addr && ct->status & IPS_NAT_MASK) /* NATed */
1311 return set_ras_addr(pskb, ct, ctinfo, data,
1317 static int process_gcf(struct sk_buff **pskb, struct nf_conn *ct,
1329 if (!get_h225_addr(ct, *data, &gcf->rasAddress, &addr, &port))
1333 if (!memcmp(&addr, &ct->tuplehash[dir].tuple.src.u3, sizeof(addr)) &&
1334 port == ct->tuplehash[dir].tuple.src.u.udp.port)
1338 if (test_bit(IPS_EXPECTED_BIT, &ct->status))
1342 if ((exp = nf_conntrack_expect_alloc(ct)) == NULL)
1344 nf_conntrack_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
1345 &ct->tuplehash[!dir].tuple.src.u3, &addr,
1361 static int process_rrq(struct sk_buff **pskb, struct nf_conn *ct,
1365 struct nf_ct_h323_master *info = &nfct_help(ct)->help.ct_h323_info;
1371 ret = expect_q931(pskb, ct, ctinfo, data,
1378 if (set_ras_addr && ct->status & IPS_NAT_MASK) {
1379 ret = set_ras_addr(pskb, ct, ctinfo, data,
1396 static int process_rcf(struct sk_buff **pskb, struct nf_conn *ct,
1400 struct nf_ct_h323_master *info = &nfct_help(ct)->help.ct_h323_info;
1409 if (set_sig_addr && ct->status & IPS_NAT_MASK) {
1410 ret = set_sig_addr(pskb, ct, ctinfo, data,
1426 nf_ct_refresh(ct, *pskb, info->timeout * HZ);
1430 exp = find_expect(ct, &ct->tuplehash[dir].tuple.dst.u3,
1446 static int process_urq(struct sk_buff **pskb, struct nf_conn *ct,
1450 struct nf_ct_h323_master *info = &nfct_help(ct)->help.ct_h323_info;
1458 if (set_sig_addr && ct->status & IPS_NAT_MASK) {
1459 ret = set_sig_addr(pskb, ct, ctinfo, data,
1467 nf_ct_remove_expectations(ct);
1472 nf_ct_refresh(ct, *pskb, 30 * HZ);
1478 static int process_arq(struct sk_buff **pskb, struct nf_conn *ct,
1482 struct nf_ct_h323_master *info = &nfct_help(ct)->help.ct_h323_info;
1492 get_h225_addr(ct, *data, &arq->destCallSignalAddress,
1494 !memcmp(&addr, &ct->tuplehash[dir].tuple.src.u3, sizeof(addr)) &&
1496 set_h225_addr && ct->status & IPS_NAT_MASK) {
1500 &ct->tuplehash[!dir].tuple.dst.u3,
1505 get_h225_addr(ct, *data, &arq->srcCallSignalAddress,
1507 !memcmp(&addr, &ct->tuplehash[dir].tuple.src.u3, sizeof(addr)) &&
1508 set_h225_addr && ct->status & IPS_NAT_MASK) {
1512 &ct->tuplehash[!dir].tuple.dst.u3,
1520 static int process_acf(struct sk_buff **pskb, struct nf_conn *ct,
1533 if (!get_h225_addr(ct, *data, &acf->destCallSignalAddress,
1537 if (!memcmp(&addr, &ct->tuplehash[dir].tuple.dst.u3, sizeof(addr))) {
1540 if (set_sig_addr && ct->status & IPS_NAT_MASK)
1541 return set_sig_addr(pskb, ct, ctinfo, data,
1547 if ((exp = nf_conntrack_expect_alloc(ct)) == NULL)
1549 nf_conntrack_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
1550 &ct->tuplehash[!dir].tuple.src.u3, &addr,
1567 static int process_lrq(struct sk_buff **pskb, struct nf_conn *ct,
1576 if (set_ras_addr && ct->status & IPS_NAT_MASK)
1577 return set_ras_addr(pskb, ct, ctinfo, data,
1583 static int process_lcf(struct sk_buff **pskb, struct nf_conn *ct,
1595 if (!get_h225_addr(ct, *data, &lcf->callSignalAddress,
1600 if ((exp = nf_conntrack_expect_alloc(ct)) == NULL)
1602 nf_conntrack_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
1603 &ct->tuplehash[!dir].tuple.src.u3, &addr,
1622 static int process_irr(struct sk_buff **pskb, struct nf_conn *ct,
1633 if (set_ras_addr && ct->status & IPS_NAT_MASK) {
1634 ret = set_ras_addr(pskb, ct, ctinfo, data,
1641 if (set_sig_addr && ct->status & IPS_NAT_MASK) {
1642 ret = set_sig_addr(pskb, ct, ctinfo, data,
1653 static int process_ras(struct sk_buff **pskb, struct nf_conn *ct,
1659 return process_grq(pskb, ct, ctinfo, data,
1662 return process_gcf(pskb, ct, ctinfo, data,
1665 return process_rrq(pskb, ct, ctinfo, data,
1668 return process_rcf(pskb, ct, ctinfo, data,
1671 return process_urq(pskb, ct, ctinfo, data,
1674 return process_arq(pskb, ct, ctinfo, data,
1677 return process_acf(pskb, ct, ctinfo, data,
1680 return process_lrq(pskb, ct, ctinfo, data,
1683 return process_lcf(pskb, ct, ctinfo, data,
1686 return process_irr(pskb, ct, ctinfo, data,
1698 struct nf_conn *ct, enum ip_conntrack_info ctinfo)
1714 NF_CT_DUMP_TUPLE(&ct->tuplehash[CTINFO2DIR(ctinfo)].tuple);
1727 if (process_ras(pskb, ct, ctinfo, &data, &ras) < 0)