]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/netfilter/nf_conntrack_h323_main.c
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6-omap-h63xx.git] / net / netfilter / nf_conntrack_h323_main.c
index b284db73ca7ce935d886b9c1bc06ba38ca5cb74d..a8a9dfbe7a67b6d6a0dce18293aaad11335de1ba 100644 (file)
 #include <net/netfilter/nf_conntrack_helper.h>
 #include <linux/netfilter/nf_conntrack_h323.h>
 
-#if 0
-#define DEBUGP printk
-#else
-#define DEBUGP(format, args...)
-#endif
-
 /* Parameters */
 static unsigned int default_rrq_ttl __read_mostly = 300;
 module_param(default_rrq_ttl, uint, 0600);
@@ -150,9 +144,9 @@ static int get_tpkt_data(struct sk_buff **pskb, unsigned int protoff,
                if (tcpdatalen < 4 || tpkt[0] != 0x03 || tpkt[1] != 0) {
                        /* Netmeeting sends TPKT header and data separately */
                        if (info->tpkt_len[dir] > 0) {
-                               DEBUGP("nf_ct_h323: previous packet "
-                                      "indicated separate TPKT data of %hu "
-                                      "bytes\n", info->tpkt_len[dir]);
+                               pr_debug("nf_ct_h323: previous packet "
+                                        "indicated separate TPKT data of %hu "
+                                        "bytes\n", info->tpkt_len[dir]);
                                if (info->tpkt_len[dir] <= tcpdatalen) {
                                        /* Yes, there was a TPKT header
                                         * received */
@@ -163,9 +157,7 @@ static int get_tpkt_data(struct sk_buff **pskb, unsigned int protoff,
                                }
 
                                /* Fragmented TPKT */
-                               if (net_ratelimit())
-                                       printk("nf_ct_h323: "
-                                              "fragmented TPKT\n");
+                               pr_debug("nf_ct_h323: fragmented TPKT\n");
                                goto clear_out;
                        }
 
@@ -192,9 +184,9 @@ static int get_tpkt_data(struct sk_buff **pskb, unsigned int protoff,
        if (tpktlen > tcpdatalen) {
                if (tcpdatalen == 4) {  /* Separate TPKT header */
                        /* Netmeeting sends TPKT header and data separately */
-                       DEBUGP("nf_ct_h323: separate TPKT header indicates "
-                              "there will be TPKT data of %hu bytes\n",
-                              tpktlen - 4);
+                       pr_debug("nf_ct_h323: separate TPKT header indicates "
+                                "there will be TPKT data of %hu bytes\n",
+                                tpktlen - 4);
                        info->tpkt_len[dir] = tpktlen - 4;
                        return 0;
                }
@@ -282,22 +274,22 @@ static int expect_rtp_rtcp(struct sk_buff **pskb, struct nf_conn *ct,
        rtcp_port = htons(ntohs(port) + 1);
 
        /* Create expect for RTP */
-       if ((rtp_exp = nf_conntrack_expect_alloc(ct)) == NULL)
+       if ((rtp_exp = nf_ct_expect_alloc(ct)) == NULL)
                return -1;
-       nf_conntrack_expect_init(rtp_exp, ct->tuplehash[!dir].tuple.src.l3num,
-                                &ct->tuplehash[!dir].tuple.src.u3,
-                                &ct->tuplehash[!dir].tuple.dst.u3,
-                                IPPROTO_UDP, NULL, &rtp_port);
+       nf_ct_expect_init(rtp_exp, ct->tuplehash[!dir].tuple.src.l3num,
+                         &ct->tuplehash[!dir].tuple.src.u3,
+                         &ct->tuplehash[!dir].tuple.dst.u3,
+                         IPPROTO_UDP, NULL, &rtp_port);
 
        /* Create expect for RTCP */
-       if ((rtcp_exp = nf_conntrack_expect_alloc(ct)) == NULL) {
-               nf_conntrack_expect_put(rtp_exp);
+       if ((rtcp_exp = nf_ct_expect_alloc(ct)) == NULL) {
+               nf_ct_expect_put(rtp_exp);
                return -1;
        }
-       nf_conntrack_expect_init(rtcp_exp, ct->tuplehash[!dir].tuple.src.l3num,
-                                &ct->tuplehash[!dir].tuple.src.u3,
-                                &ct->tuplehash[!dir].tuple.dst.u3,
-                                IPPROTO_UDP, NULL, &rtcp_port);
+       nf_ct_expect_init(rtcp_exp, ct->tuplehash[!dir].tuple.src.l3num,
+                         &ct->tuplehash[!dir].tuple.src.u3,
+                         &ct->tuplehash[!dir].tuple.dst.u3,
+                         IPPROTO_UDP, NULL, &rtcp_port);
 
        if (memcmp(&ct->tuplehash[dir].tuple.src.u3,
                   &ct->tuplehash[!dir].tuple.dst.u3,
@@ -308,22 +300,22 @@ static int expect_rtp_rtcp(struct sk_buff **pskb, struct nf_conn *ct,
                ret = nat_rtp_rtcp(pskb, ct, ctinfo, data, dataoff,
                                   taddr, port, rtp_port, rtp_exp, rtcp_exp);
        } else {                /* Conntrack only */
-               if (nf_conntrack_expect_related(rtp_exp) == 0) {
-                       if (nf_conntrack_expect_related(rtcp_exp) == 0) {
-                               DEBUGP("nf_ct_h323: expect RTP ");
+               if (nf_ct_expect_related(rtp_exp) == 0) {
+                       if (nf_ct_expect_related(rtcp_exp) == 0) {
+                               pr_debug("nf_ct_h323: expect RTP ");
                                NF_CT_DUMP_TUPLE(&rtp_exp->tuple);
-                               DEBUGP("nf_ct_h323: expect RTCP ");
+                               pr_debug("nf_ct_h323: expect RTCP ");
                                NF_CT_DUMP_TUPLE(&rtcp_exp->tuple);
                        } else {
-                               nf_conntrack_unexpect_related(rtp_exp);
+                               nf_ct_unexpect_related(rtp_exp);
                                ret = -1;
                        }
                } else
                        ret = -1;
        }
 
-       nf_conntrack_expect_put(rtp_exp);
-       nf_conntrack_expect_put(rtcp_exp);
+       nf_ct_expect_put(rtp_exp);
+       nf_ct_expect_put(rtcp_exp);
 
        return ret;
 }
@@ -349,12 +341,12 @@ static int expect_t120(struct sk_buff **pskb,
                return 0;
 
        /* Create expect for T.120 connections */
-       if ((exp = nf_conntrack_expect_alloc(ct)) == NULL)
+       if ((exp = nf_ct_expect_alloc(ct)) == NULL)
                return -1;
-       nf_conntrack_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
-                                &ct->tuplehash[!dir].tuple.src.u3,
-                                &ct->tuplehash[!dir].tuple.dst.u3,
-                                IPPROTO_TCP, NULL, &port);
+       nf_ct_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
+                         &ct->tuplehash[!dir].tuple.src.u3,
+                         &ct->tuplehash[!dir].tuple.dst.u3,
+                         IPPROTO_TCP, NULL, &port);
        exp->flags = NF_CT_EXPECT_PERMANENT;    /* Accept multiple channels */
 
        if (memcmp(&ct->tuplehash[dir].tuple.src.u3,
@@ -366,14 +358,14 @@ static int expect_t120(struct sk_buff **pskb,
                ret = nat_t120(pskb, ct, ctinfo, data, dataoff, taddr,
                               port, exp);
        } else {                /* Conntrack only */
-               if (nf_conntrack_expect_related(exp) == 0) {
-                       DEBUGP("nf_ct_h323: expect T.120 ");
+               if (nf_ct_expect_related(exp) == 0) {
+                       pr_debug("nf_ct_h323: expect T.120 ");
                        NF_CT_DUMP_TUPLE(&exp->tuple);
                } else
                        ret = -1;
        }
 
-       nf_conntrack_expect_put(exp);
+       nf_ct_expect_put(exp);
 
        return ret;
 }
@@ -415,7 +407,7 @@ static int process_olc(struct sk_buff **pskb, struct nf_conn *ct,
 {
        int ret;
 
-       DEBUGP("nf_ct_h323: OpenLogicalChannel\n");
+       pr_debug("nf_ct_h323: OpenLogicalChannel\n");
 
        if (olc->forwardLogicalChannelParameters.multiplexParameters.choice ==
            eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters)
@@ -475,7 +467,7 @@ static int process_olca(struct sk_buff **pskb, struct nf_conn *ct,
        H2250LogicalChannelAckParameters *ack;
        int ret;
 
-       DEBUGP("nf_ct_h323: OpenLogicalChannelAck\n");
+       pr_debug("nf_ct_h323: OpenLogicalChannelAck\n");
 
        if ((olca->options &
             eOpenLogicalChannelAck_reverseLogicalChannelParameters) &&
@@ -520,6 +512,16 @@ static int process_olca(struct sk_buff **pskb, struct nf_conn *ct,
                }
        }
 
+       if ((olca->options & eOpenLogicalChannelAck_separateStack) &&
+               olca->separateStack.networkAddress.choice ==
+               eNetworkAccessParameters_networkAddress_localAreaAddress) {
+               ret = expect_t120(pskb, ct, ctinfo, data, dataoff,
+                                 &olca->separateStack.networkAddress.
+                                 localAreaAddress);
+               if (ret < 0)
+                       return -1;
+       }
+
        return 0;
 }
 
@@ -536,8 +538,8 @@ static int process_h245(struct sk_buff **pskb, struct nf_conn *ct,
                        return process_olc(pskb, ct, ctinfo, data, dataoff,
                                           &mscm->request.openLogicalChannel);
                }
-               DEBUGP("nf_ct_h323: H.245 Request %d\n",
-                      mscm->request.choice);
+               pr_debug("nf_ct_h323: H.245 Request %d\n",
+                        mscm->request.choice);
                break;
        case eMultimediaSystemControlMessage_response:
                if (mscm->response.choice ==
@@ -546,11 +548,11 @@ static int process_h245(struct sk_buff **pskb, struct nf_conn *ct,
                                            &mscm->response.
                                            openLogicalChannelAck);
                }
-               DEBUGP("nf_ct_h323: H.245 Response %d\n",
-                      mscm->response.choice);
+               pr_debug("nf_ct_h323: H.245 Response %d\n",
+                        mscm->response.choice);
                break;
        default:
-               DEBUGP("nf_ct_h323: H.245 signal %d\n", mscm->choice);
+               pr_debug("nf_ct_h323: H.245 signal %d\n", mscm->choice);
                break;
        }
 
@@ -572,24 +574,23 @@ static int h245_help(struct sk_buff **pskb, unsigned int protoff,
            ctinfo != IP_CT_ESTABLISHED + IP_CT_IS_REPLY) {
                return NF_ACCEPT;
        }
-       DEBUGP("nf_ct_h245: skblen = %u\n", (*pskb)->len);
+       pr_debug("nf_ct_h245: skblen = %u\n", (*pskb)->len);
 
        spin_lock_bh(&nf_h323_lock);
 
        /* Process each TPKT */
        while (get_tpkt_data(pskb, protoff, ct, ctinfo,
                             &data, &datalen, &dataoff)) {
-               DEBUGP("nf_ct_h245: TPKT len=%d ", datalen);
+               pr_debug("nf_ct_h245: TPKT len=%d ", datalen);
                NF_CT_DUMP_TUPLE(&ct->tuplehash[CTINFO2DIR(ctinfo)].tuple);
 
                /* Decode H.245 signal */
                ret = DecodeMultimediaSystemControlMessage(data, datalen,
                                                           &mscm);
                if (ret < 0) {
-                       if (net_ratelimit())
-                               printk("nf_ct_h245: decoding error: %s\n",
-                                      ret == H323_ERROR_BOUND ?
-                                      "out of bound" : "out of range");
+                       pr_debug("nf_ct_h245: decoding error: %s\n",
+                                ret == H323_ERROR_BOUND ?
+                                "out of bound" : "out of range");
                        /* We don't drop when decoding error */
                        break;
                }
@@ -616,8 +617,6 @@ static struct nf_conntrack_helper nf_conntrack_helper_h245 __read_mostly = {
        .max_expected           = H323_RTP_CHANNEL_MAX * 4 + 2 /* T.120 */,
        .timeout                = 240,
        .tuple.dst.protonum     = IPPROTO_UDP,
-       .mask.src.u.udp.port    = __constant_htons(0xFFFF),
-       .mask.dst.protonum      = 0xFF,
        .help                   = h245_help
 };
 
@@ -640,7 +639,7 @@ int get_h225_addr(struct nf_conn *ct, unsigned char *data,
        case eTransportAddress_ip6Address:
                if (family != AF_INET6)
                        return 0;
-               p = data + taddr->ip6Address.ip6;
+               p = data + taddr->ip6Address.ip;
                len = 16;
                break;
        default:
@@ -674,12 +673,12 @@ static int expect_h245(struct sk_buff **pskb, struct nf_conn *ct,
                return 0;
 
        /* Create expect for h245 connection */
-       if ((exp = nf_conntrack_expect_alloc(ct)) == NULL)
+       if ((exp = nf_ct_expect_alloc(ct)) == NULL)
                return -1;
-       nf_conntrack_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
-                                &ct->tuplehash[!dir].tuple.src.u3,
-                                &ct->tuplehash[!dir].tuple.dst.u3,
-                                IPPROTO_TCP, NULL, &port);
+       nf_ct_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
+                         &ct->tuplehash[!dir].tuple.src.u3,
+                         &ct->tuplehash[!dir].tuple.dst.u3,
+                         IPPROTO_TCP, NULL, &port);
        exp->helper = &nf_conntrack_helper_h245;
 
        if (memcmp(&ct->tuplehash[dir].tuple.src.u3,
@@ -691,14 +690,14 @@ static int expect_h245(struct sk_buff **pskb, struct nf_conn *ct,
                ret = nat_h245(pskb, ct, ctinfo, data, dataoff, taddr,
                               port, exp);
        } else {                /* Conntrack only */
-               if (nf_conntrack_expect_related(exp) == 0) {
-                       DEBUGP("nf_ct_q931: expect H.245 ");
+               if (nf_ct_expect_related(exp) == 0) {
+                       pr_debug("nf_ct_q931: expect H.245 ");
                        NF_CT_DUMP_TUPLE(&exp->tuple);
                } else
                        ret = -1;
        }
 
-       nf_conntrack_expect_put(exp);
+       nf_ct_expect_put(exp);
 
        return ret;
 }
@@ -781,16 +780,16 @@ static int expect_callforwarding(struct sk_buff **pskb,
        if (callforward_filter &&
            callforward_do_filter(&addr, &ct->tuplehash[!dir].tuple.src.u3,
                                  ct->tuplehash[!dir].tuple.src.l3num)) {
-               DEBUGP("nf_ct_q931: Call Forwarding not tracked\n");
+               pr_debug("nf_ct_q931: Call Forwarding not tracked\n");
                return 0;
        }
 
        /* Create expect for the second call leg */
-       if ((exp = nf_conntrack_expect_alloc(ct)) == NULL)
+       if ((exp = nf_ct_expect_alloc(ct)) == NULL)
                return -1;
-       nf_conntrack_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
-                                &ct->tuplehash[!dir].tuple.src.u3, &addr,
-                                IPPROTO_TCP, NULL, &port);
+       nf_ct_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
+                         &ct->tuplehash[!dir].tuple.src.u3, &addr,
+                         IPPROTO_TCP, NULL, &port);
        exp->helper = nf_conntrack_helper_q931;
 
        if (memcmp(&ct->tuplehash[dir].tuple.src.u3,
@@ -802,14 +801,14 @@ static int expect_callforwarding(struct sk_buff **pskb,
                ret = nat_callforwarding(pskb, ct, ctinfo, data, dataoff,
                                         taddr, port, exp);
        } else {                /* Conntrack only */
-               if (nf_conntrack_expect_related(exp) == 0) {
-                       DEBUGP("nf_ct_q931: expect Call Forwarding ");
+               if (nf_ct_expect_related(exp) == 0) {
+                       pr_debug("nf_ct_q931: expect Call Forwarding ");
                        NF_CT_DUMP_TUPLE(&exp->tuple);
                } else
                        ret = -1;
        }
 
-       nf_conntrack_expect_put(exp);
+       nf_ct_expect_put(exp);
 
        return ret;
 }
@@ -827,7 +826,7 @@ static int process_setup(struct sk_buff **pskb, struct nf_conn *ct,
        union nf_conntrack_address addr;
        typeof(set_h225_addr_hook) set_h225_addr;
 
-       DEBUGP("nf_ct_q931: Setup\n");
+       pr_debug("nf_ct_q931: Setup\n");
 
        if (setup->options & eSetup_UUIE_h245Address) {
                ret = expect_h245(pskb, ct, ctinfo, data, dataoff,
@@ -842,11 +841,11 @@ static int process_setup(struct sk_buff **pskb, struct nf_conn *ct,
            get_h225_addr(ct, *data, &setup->destCallSignalAddress,
                          &addr, &port) &&
            memcmp(&addr, &ct->tuplehash[!dir].tuple.src.u3, sizeof(addr))) {
-               DEBUGP("nf_ct_q931: set destCallSignalAddress "
-                      NIP6_FMT ":%hu->" NIP6_FMT ":%hu\n",
-                      NIP6(*(struct in6_addr *)&addr), ntohs(port),
-                      NIP6(*(struct in6_addr *)&ct->tuplehash[!dir].tuple.src.u3),
-                      ntohs(ct->tuplehash[!dir].tuple.src.u.tcp.port));
+               pr_debug("nf_ct_q931: set destCallSignalAddress "
+                        NIP6_FMT ":%hu->" NIP6_FMT ":%hu\n",
+                        NIP6(*(struct in6_addr *)&addr), ntohs(port),
+                        NIP6(*(struct in6_addr *)&ct->tuplehash[!dir].tuple.src.u3),
+                        ntohs(ct->tuplehash[!dir].tuple.src.u.tcp.port));
                ret = set_h225_addr(pskb, data, dataoff,
                                    &setup->destCallSignalAddress,
                                    &ct->tuplehash[!dir].tuple.src.u3,
@@ -860,11 +859,11 @@ static int process_setup(struct sk_buff **pskb, struct nf_conn *ct,
            get_h225_addr(ct, *data, &setup->sourceCallSignalAddress,
                          &addr, &port) &&
            memcmp(&addr, &ct->tuplehash[!dir].tuple.dst.u3, sizeof(addr))) {
-               DEBUGP("nf_ct_q931: set sourceCallSignalAddress "
-                      NIP6_FMT ":%hu->" NIP6_FMT ":%hu\n",
-                      NIP6(*(struct in6_addr *)&addr), ntohs(port),
-                      NIP6(*(struct in6_addr *)&ct->tuplehash[!dir].tuple.dst.u3),
-                      ntohs(ct->tuplehash[!dir].tuple.dst.u.tcp.port));
+               pr_debug("nf_ct_q931: set sourceCallSignalAddress "
+                        NIP6_FMT ":%hu->" NIP6_FMT ":%hu\n",
+                        NIP6(*(struct in6_addr *)&addr), ntohs(port),
+                        NIP6(*(struct in6_addr *)&ct->tuplehash[!dir].tuple.dst.u3),
+                        ntohs(ct->tuplehash[!dir].tuple.dst.u.tcp.port));
                ret = set_h225_addr(pskb, data, dataoff,
                                    &setup->sourceCallSignalAddress,
                                    &ct->tuplehash[!dir].tuple.dst.u3,
@@ -895,7 +894,7 @@ static int process_callproceeding(struct sk_buff **pskb,
        int ret;
        int i;
 
-       DEBUGP("nf_ct_q931: CallProceeding\n");
+       pr_debug("nf_ct_q931: CallProceeding\n");
 
        if (callproc->options & eCallProceeding_UUIE_h245Address) {
                ret = expect_h245(pskb, ct, ctinfo, data, dataoff,
@@ -925,7 +924,7 @@ static int process_connect(struct sk_buff **pskb, struct nf_conn *ct,
        int ret;
        int i;
 
-       DEBUGP("nf_ct_q931: Connect\n");
+       pr_debug("nf_ct_q931: Connect\n");
 
        if (connect->options & eConnect_UUIE_h245Address) {
                ret = expect_h245(pskb, ct, ctinfo, data, dataoff,
@@ -955,7 +954,7 @@ static int process_alerting(struct sk_buff **pskb, struct nf_conn *ct,
        int ret;
        int i;
 
-       DEBUGP("nf_ct_q931: Alerting\n");
+       pr_debug("nf_ct_q931: Alerting\n");
 
        if (alert->options & eAlerting_UUIE_h245Address) {
                ret = expect_h245(pskb, ct, ctinfo, data, dataoff,
@@ -976,30 +975,6 @@ static int process_alerting(struct sk_buff **pskb, struct nf_conn *ct,
        return 0;
 }
 
-/****************************************************************************/
-static int process_information(struct sk_buff **pskb,
-                              struct nf_conn *ct,
-                              enum ip_conntrack_info ctinfo,
-                              unsigned char **data, int dataoff,
-                              Information_UUIE *info)
-{
-       int ret;
-       int i;
-
-       DEBUGP("nf_ct_q931: Information\n");
-
-       if (info->options & eInformation_UUIE_fastStart) {
-               for (i = 0; i < info->fastStart.count; i++) {
-                       ret = process_olc(pskb, ct, ctinfo, data, dataoff,
-                                         &info->fastStart.item[i]);
-                       if (ret < 0)
-                               return -1;
-               }
-       }
-
-       return 0;
-}
-
 /****************************************************************************/
 static int process_facility(struct sk_buff **pskb, struct nf_conn *ct,
                            enum ip_conntrack_info ctinfo,
@@ -1009,7 +984,7 @@ static int process_facility(struct sk_buff **pskb, struct nf_conn *ct,
        int ret;
        int i;
 
-       DEBUGP("nf_ct_q931: Facility\n");
+       pr_debug("nf_ct_q931: Facility\n");
 
        if (facility->reason.choice == eFacilityReason_callForwarded) {
                if (facility->options & eFacility_UUIE_alternativeAddress)
@@ -1048,7 +1023,7 @@ static int process_progress(struct sk_buff **pskb, struct nf_conn *ct,
        int ret;
        int i;
 
-       DEBUGP("nf_ct_q931: Progress\n");
+       pr_debug("nf_ct_q931: Progress\n");
 
        if (progress->options & eProgress_UUIE_h245Address) {
                ret = expect_h245(pskb, ct, ctinfo, data, dataoff,
@@ -1096,11 +1071,6 @@ static int process_q931(struct sk_buff **pskb, struct nf_conn *ct,
                ret = process_alerting(pskb, ct, ctinfo, data, dataoff,
                                       &pdu->h323_message_body.alerting);
                break;
-       case eH323_UU_PDU_h323_message_body_information:
-               ret = process_information(pskb, ct, ctinfo, data, dataoff,
-                                         &pdu->h323_message_body.
-                                         information);
-               break;
        case eH323_UU_PDU_h323_message_body_facility:
                ret = process_facility(pskb, ct, ctinfo, data, dataoff,
                                       &pdu->h323_message_body.facility);
@@ -1110,8 +1080,8 @@ static int process_q931(struct sk_buff **pskb, struct nf_conn *ct,
                                       &pdu->h323_message_body.progress);
                break;
        default:
-               DEBUGP("nf_ct_q931: Q.931 signal %d\n",
-                      pdu->h323_message_body.choice);
+               pr_debug("nf_ct_q931: Q.931 signal %d\n",
+                        pdu->h323_message_body.choice);
                break;
        }
 
@@ -1145,23 +1115,22 @@ static int q931_help(struct sk_buff **pskb, unsigned int protoff,
            ctinfo != IP_CT_ESTABLISHED + IP_CT_IS_REPLY) {
                return NF_ACCEPT;
        }
-       DEBUGP("nf_ct_q931: skblen = %u\n", (*pskb)->len);
+       pr_debug("nf_ct_q931: skblen = %u\n", (*pskb)->len);
 
        spin_lock_bh(&nf_h323_lock);
 
        /* Process each TPKT */
        while (get_tpkt_data(pskb, protoff, ct, ctinfo,
                             &data, &datalen, &dataoff)) {
-               DEBUGP("nf_ct_q931: TPKT len=%d ", datalen);
+               pr_debug("nf_ct_q931: TPKT len=%d ", datalen);
                NF_CT_DUMP_TUPLE(&ct->tuplehash[CTINFO2DIR(ctinfo)].tuple);
 
                /* Decode Q.931 signal */
                ret = DecodeQ931(data, datalen, &q931);
                if (ret < 0) {
-                       if (net_ratelimit())
-                               printk("nf_ct_q931: decoding error: %s\n",
-                                      ret == H323_ERROR_BOUND ?
-                                      "out of bound" : "out of range");
+                       pr_debug("nf_ct_q931: decoding error: %s\n",
+                                ret == H323_ERROR_BOUND ?
+                                "out of bound" : "out of range");
                        /* We don't drop when decoding error */
                        break;
                }
@@ -1192,9 +1161,6 @@ static struct nf_conntrack_helper nf_conntrack_helper_q931[] __read_mostly = {
                .tuple.src.l3num        = AF_INET,
                .tuple.src.u.tcp.port   = __constant_htons(Q931_PORT),
                .tuple.dst.protonum     = IPPROTO_TCP,
-               .mask.src.l3num         = 0xFFFF,
-               .mask.src.u.tcp.port    = __constant_htons(0xFFFF),
-               .mask.dst.protonum      = 0xFF,
                .help                   = q931_help
        },
        {
@@ -1206,9 +1172,6 @@ static struct nf_conntrack_helper nf_conntrack_helper_q931[] __read_mostly = {
                .tuple.src.l3num        = AF_INET6,
                .tuple.src.u.tcp.port   = __constant_htons(Q931_PORT),
                .tuple.dst.protonum     = IPPROTO_TCP,
-               .mask.src.l3num         = 0xFFFF,
-               .mask.src.u.tcp.port    = __constant_htons(0xFFFF),
-               .mask.dst.protonum      = 0xFF,
                .help                   = q931_help
        },
 };
@@ -1244,7 +1207,7 @@ static struct nf_conntrack_expect *find_expect(struct nf_conn *ct,
        tuple.dst.u.tcp.port = port;
        tuple.dst.protonum = IPPROTO_TCP;
 
-       exp = __nf_conntrack_expect_find(&tuple);
+       exp = __nf_ct_expect_find(&tuple);
        if (exp && exp->master == ct)
                return exp;
        return NULL;
@@ -1290,14 +1253,13 @@ static int expect_q931(struct sk_buff **pskb, struct nf_conn *ct,
                return 0;
 
        /* Create expect for Q.931 */
-       if ((exp = nf_conntrack_expect_alloc(ct)) == NULL)
+       if ((exp = nf_ct_expect_alloc(ct)) == NULL)
                return -1;
-       nf_conntrack_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
-                                gkrouted_only ? /* only accept calls from GK? */
-                                       &ct->tuplehash[!dir].tuple.src.u3 :
-                                       NULL,
-                                &ct->tuplehash[!dir].tuple.dst.u3,
-                                IPPROTO_TCP, NULL, &port);
+       nf_ct_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
+                         gkrouted_only ? /* only accept calls from GK? */
+                               &ct->tuplehash[!dir].tuple.src.u3 : NULL,
+                         &ct->tuplehash[!dir].tuple.dst.u3,
+                         IPPROTO_TCP, NULL, &port);
        exp->helper = nf_conntrack_helper_q931;
        exp->flags = NF_CT_EXPECT_PERMANENT;    /* Accept multiple calls */
 
@@ -1305,8 +1267,8 @@ static int expect_q931(struct sk_buff **pskb, struct nf_conn *ct,
        if (nat_q931 && ct->status & IPS_NAT_MASK) {    /* Need NAT */
                ret = nat_q931(pskb, ct, ctinfo, data, taddr, i, port, exp);
        } else {                /* Conntrack only */
-               if (nf_conntrack_expect_related(exp) == 0) {
-                       DEBUGP("nf_ct_ras: expect Q.931 ");
+               if (nf_ct_expect_related(exp) == 0) {
+                       pr_debug("nf_ct_ras: expect Q.931 ");
                        NF_CT_DUMP_TUPLE(&exp->tuple);
 
                        /* Save port for looking up expect in processing RCF */
@@ -1315,7 +1277,7 @@ static int expect_q931(struct sk_buff **pskb, struct nf_conn *ct,
                        ret = -1;
        }
 
-       nf_conntrack_expect_put(exp);
+       nf_ct_expect_put(exp);
 
        return ret;
 }
@@ -1327,7 +1289,7 @@ static int process_grq(struct sk_buff **pskb, struct nf_conn *ct,
 {
        typeof(set_ras_addr_hook) set_ras_addr;
 
-       DEBUGP("nf_ct_ras: GRQ\n");
+       pr_debug("nf_ct_ras: GRQ\n");
 
        set_ras_addr = rcu_dereference(set_ras_addr_hook);
        if (set_ras_addr && ct->status & IPS_NAT_MASK)  /* NATed */
@@ -1347,7 +1309,7 @@ static int process_gcf(struct sk_buff **pskb, struct nf_conn *ct,
        union nf_conntrack_address addr;
        struct nf_conntrack_expect *exp;
 
-       DEBUGP("nf_ct_ras: GCF\n");
+       pr_debug("nf_ct_ras: GCF\n");
 
        if (!get_h225_addr(ct, *data, &gcf->rasAddress, &addr, &port))
                return 0;
@@ -1362,20 +1324,20 @@ static int process_gcf(struct sk_buff **pskb, struct nf_conn *ct,
                return 0;
 
        /* Need new expect */
-       if ((exp = nf_conntrack_expect_alloc(ct)) == NULL)
+       if ((exp = nf_ct_expect_alloc(ct)) == NULL)
                return -1;
-       nf_conntrack_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
-                                &ct->tuplehash[!dir].tuple.src.u3, &addr,
-                                IPPROTO_UDP, NULL, &port);
+       nf_ct_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
+                         &ct->tuplehash[!dir].tuple.src.u3, &addr,
+                         IPPROTO_UDP, NULL, &port);
        exp->helper = nf_conntrack_helper_ras;
 
-       if (nf_conntrack_expect_related(exp) == 0) {
-               DEBUGP("nf_ct_ras: expect RAS ");
+       if (nf_ct_expect_related(exp) == 0) {
+               pr_debug("nf_ct_ras: expect RAS ");
                NF_CT_DUMP_TUPLE(&exp->tuple);
        } else
                ret = -1;
 
-       nf_conntrack_expect_put(exp);
+       nf_ct_expect_put(exp);
 
        return ret;
 }
@@ -1389,7 +1351,7 @@ static int process_rrq(struct sk_buff **pskb, struct nf_conn *ct,
        int ret;
        typeof(set_ras_addr_hook) set_ras_addr;
 
-       DEBUGP("nf_ct_ras: RRQ\n");
+       pr_debug("nf_ct_ras: RRQ\n");
 
        ret = expect_q931(pskb, ct, ctinfo, data,
                          rrq->callSignalAddress.item,
@@ -1407,7 +1369,7 @@ static int process_rrq(struct sk_buff **pskb, struct nf_conn *ct,
        }
 
        if (rrq->options & eRegistrationRequest_timeToLive) {
-               DEBUGP("nf_ct_ras: RRQ TTL = %u seconds\n", rrq->timeToLive);
+               pr_debug("nf_ct_ras: RRQ TTL = %u seconds\n", rrq->timeToLive);
                info->timeout = rrq->timeToLive;
        } else
                info->timeout = default_rrq_ttl;
@@ -1426,7 +1388,7 @@ static int process_rcf(struct sk_buff **pskb, struct nf_conn *ct,
        struct nf_conntrack_expect *exp;
        typeof(set_sig_addr_hook) set_sig_addr;
 
-       DEBUGP("nf_ct_ras: RCF\n");
+       pr_debug("nf_ct_ras: RCF\n");
 
        set_sig_addr = rcu_dereference(set_sig_addr_hook);
        if (set_sig_addr && ct->status & IPS_NAT_MASK) {
@@ -1438,14 +1400,13 @@ static int process_rcf(struct sk_buff **pskb, struct nf_conn *ct,
        }
 
        if (rcf->options & eRegistrationConfirm_timeToLive) {
-               DEBUGP("nf_ct_ras: RCF TTL = %u seconds\n", rcf->timeToLive);
+               pr_debug("nf_ct_ras: RCF TTL = %u seconds\n", rcf->timeToLive);
                info->timeout = rcf->timeToLive;
        }
 
        if (info->timeout > 0) {
-               DEBUGP
-                   ("nf_ct_ras: set RAS connection timeout to %u seconds\n",
-                    info->timeout);
+               pr_debug("nf_ct_ras: set RAS connection timeout to "
+                        "%u seconds\n", info->timeout);
                nf_ct_refresh(ct, *pskb, info->timeout * HZ);
 
                /* Set expect timeout */
@@ -1453,9 +1414,9 @@ static int process_rcf(struct sk_buff **pskb, struct nf_conn *ct,
                exp = find_expect(ct, &ct->tuplehash[dir].tuple.dst.u3,
                                  info->sig_port[!dir]);
                if (exp) {
-                       DEBUGP("nf_ct_ras: set Q.931 expect "
-                              "timeout to %u seconds for",
-                              info->timeout);
+                       pr_debug("nf_ct_ras: set Q.931 expect "
+                                "timeout to %u seconds for",
+                                info->timeout);
                        NF_CT_DUMP_TUPLE(&exp->tuple);
                        set_expect_timeout(exp, info->timeout);
                }
@@ -1475,7 +1436,7 @@ static int process_urq(struct sk_buff **pskb, struct nf_conn *ct,
        int ret;
        typeof(set_sig_addr_hook) set_sig_addr;
 
-       DEBUGP("nf_ct_ras: URQ\n");
+       pr_debug("nf_ct_ras: URQ\n");
 
        set_sig_addr = rcu_dereference(set_sig_addr_hook);
        if (set_sig_addr && ct->status & IPS_NAT_MASK) {
@@ -1508,7 +1469,7 @@ static int process_arq(struct sk_buff **pskb, struct nf_conn *ct,
        union nf_conntrack_address addr;
        typeof(set_h225_addr_hook) set_h225_addr;
 
-       DEBUGP("nf_ct_ras: ARQ\n");
+       pr_debug("nf_ct_ras: ARQ\n");
 
        set_h225_addr = rcu_dereference(set_h225_addr_hook);
        if ((arq->options & eAdmissionRequest_destCallSignalAddress) &&
@@ -1551,7 +1512,7 @@ static int process_acf(struct sk_buff **pskb, struct nf_conn *ct,
        struct nf_conntrack_expect *exp;
        typeof(set_sig_addr_hook) set_sig_addr;
 
-       DEBUGP("nf_ct_ras: ACF\n");
+       pr_debug("nf_ct_ras: ACF\n");
 
        if (!get_h225_addr(ct, *data, &acf->destCallSignalAddress,
                           &addr, &port))
@@ -1567,21 +1528,21 @@ static int process_acf(struct sk_buff **pskb, struct nf_conn *ct,
        }
 
        /* Need new expect */
-       if ((exp = nf_conntrack_expect_alloc(ct)) == NULL)
+       if ((exp = nf_ct_expect_alloc(ct)) == NULL)
                return -1;
-       nf_conntrack_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
-                                &ct->tuplehash[!dir].tuple.src.u3, &addr,
-                                IPPROTO_TCP, NULL, &port);
+       nf_ct_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
+                         &ct->tuplehash[!dir].tuple.src.u3, &addr,
+                         IPPROTO_TCP, NULL, &port);
        exp->flags = NF_CT_EXPECT_PERMANENT;
        exp->helper = nf_conntrack_helper_q931;
 
-       if (nf_conntrack_expect_related(exp) == 0) {
-               DEBUGP("nf_ct_ras: expect Q.931 ");
+       if (nf_ct_expect_related(exp) == 0) {
+               pr_debug("nf_ct_ras: expect Q.931 ");
                NF_CT_DUMP_TUPLE(&exp->tuple);
        } else
                ret = -1;
 
-       nf_conntrack_expect_put(exp);
+       nf_ct_expect_put(exp);
 
        return ret;
 }
@@ -1593,7 +1554,7 @@ static int process_lrq(struct sk_buff **pskb, struct nf_conn *ct,
 {
        typeof(set_ras_addr_hook) set_ras_addr;
 
-       DEBUGP("nf_ct_ras: LRQ\n");
+       pr_debug("nf_ct_ras: LRQ\n");
 
        set_ras_addr = rcu_dereference(set_ras_addr_hook);
        if (set_ras_addr && ct->status & IPS_NAT_MASK)
@@ -1613,28 +1574,28 @@ static int process_lcf(struct sk_buff **pskb, struct nf_conn *ct,
        union nf_conntrack_address addr;
        struct nf_conntrack_expect *exp;
 
-       DEBUGP("nf_ct_ras: LCF\n");
+       pr_debug("nf_ct_ras: LCF\n");
 
        if (!get_h225_addr(ct, *data, &lcf->callSignalAddress,
                           &addr, &port))
                return 0;
 
        /* Need new expect for call signal */
-       if ((exp = nf_conntrack_expect_alloc(ct)) == NULL)
+       if ((exp = nf_ct_expect_alloc(ct)) == NULL)
                return -1;
-       nf_conntrack_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
-                                &ct->tuplehash[!dir].tuple.src.u3, &addr,
-                                IPPROTO_TCP, NULL, &port);
+       nf_ct_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
+                         &ct->tuplehash[!dir].tuple.src.u3, &addr,
+                         IPPROTO_TCP, NULL, &port);
        exp->flags = NF_CT_EXPECT_PERMANENT;
        exp->helper = nf_conntrack_helper_q931;
 
-       if (nf_conntrack_expect_related(exp) == 0) {
-               DEBUGP("nf_ct_ras: expect Q.931 ");
+       if (nf_ct_expect_related(exp) == 0) {
+               pr_debug("nf_ct_ras: expect Q.931 ");
                NF_CT_DUMP_TUPLE(&exp->tuple);
        } else
                ret = -1;
 
-       nf_conntrack_expect_put(exp);
+       nf_ct_expect_put(exp);
 
        /* Ignore rasAddress */
 
@@ -1650,7 +1611,7 @@ static int process_irr(struct sk_buff **pskb, struct nf_conn *ct,
        typeof(set_ras_addr_hook) set_ras_addr;
        typeof(set_sig_addr_hook) set_sig_addr;
 
-       DEBUGP("nf_ct_ras: IRR\n");
+       pr_debug("nf_ct_ras: IRR\n");
 
        set_ras_addr = rcu_dereference(set_ras_addr_hook);
        if (set_ras_addr && ct->status & IPS_NAT_MASK) {
@@ -1709,7 +1670,7 @@ static int process_ras(struct sk_buff **pskb, struct nf_conn *ct,
                return process_irr(pskb, ct, ctinfo, data,
                                   &ras->infoRequestResponse);
        default:
-               DEBUGP("nf_ct_ras: RAS message %d\n", ras->choice);
+               pr_debug("nf_ct_ras: RAS message %d\n", ras->choice);
                break;
        }
 
@@ -1725,7 +1686,7 @@ static int ras_help(struct sk_buff **pskb, unsigned int protoff,
        int datalen = 0;
        int ret;
 
-       DEBUGP("nf_ct_ras: skblen = %u\n", (*pskb)->len);
+       pr_debug("nf_ct_ras: skblen = %u\n", (*pskb)->len);
 
        spin_lock_bh(&nf_h323_lock);
 
@@ -1733,16 +1694,15 @@ static int ras_help(struct sk_buff **pskb, unsigned int protoff,
        data = get_udp_data(pskb, protoff, &datalen);
        if (data == NULL)
                goto accept;
-       DEBUGP("nf_ct_ras: RAS message len=%d ", datalen);
+       pr_debug("nf_ct_ras: RAS message len=%d ", datalen);
        NF_CT_DUMP_TUPLE(&ct->tuplehash[CTINFO2DIR(ctinfo)].tuple);
 
        /* Decode RAS message */
        ret = DecodeRasMessage(data, datalen, &ras);
        if (ret < 0) {
-               if (net_ratelimit())
-                       printk("nf_ct_ras: decoding error: %s\n",
-                              ret == H323_ERROR_BOUND ?
-                              "out of bound" : "out of range");
+               pr_debug("nf_ct_ras: decoding error: %s\n",
+                        ret == H323_ERROR_BOUND ?
+                        "out of bound" : "out of range");
                goto accept;
        }
 
@@ -1771,9 +1731,6 @@ static struct nf_conntrack_helper nf_conntrack_helper_ras[] __read_mostly = {
                .tuple.src.l3num        = AF_INET,
                .tuple.src.u.udp.port   = __constant_htons(RAS_PORT),
                .tuple.dst.protonum     = IPPROTO_UDP,
-               .mask.src.l3num         = 0xFFFF,
-               .mask.src.u.udp.port    = __constant_htons(0xFFFF),
-               .mask.dst.protonum      = 0xFF,
                .help                   = ras_help,
        },
        {
@@ -1784,9 +1741,6 @@ static struct nf_conntrack_helper nf_conntrack_helper_ras[] __read_mostly = {
                .tuple.src.l3num        = AF_INET6,
                .tuple.src.u.udp.port   = __constant_htons(RAS_PORT),
                .tuple.dst.protonum     = IPPROTO_UDP,
-               .mask.src.l3num         = 0xFFFF,
-               .mask.src.u.udp.port    = __constant_htons(0xFFFF),
-               .mask.dst.protonum      = 0xFF,
                .help                   = ras_help,
        },
 };
@@ -1799,7 +1753,7 @@ static void __exit nf_conntrack_h323_fini(void)
        nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[1]);
        nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[0]);
        kfree(h323_buffer);
-       DEBUGP("nf_ct_h323: fini\n");
+       pr_debug("nf_ct_h323: fini\n");
 }
 
 /****************************************************************************/
@@ -1822,7 +1776,7 @@ static int __init nf_conntrack_h323_init(void)
        ret = nf_conntrack_helper_register(&nf_conntrack_helper_ras[1]);
        if (ret < 0)
                goto err4;
-       DEBUGP("nf_ct_h323: init success\n");
+       pr_debug("nf_ct_h323: init success\n");
        return 0;
 
 err4: