All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wei Yongjun <yjwei@cn.fujitsu.com>
To: linux-sctp@vger.kernel.org
Subject: Re: Question regarding struct sctp_association
Date: Wed, 12 Jan 2011 01:00:28 +0000	[thread overview]
Message-ID: <4D2CFD2C.5010801@cn.fujitsu.com> (raw)
In-Reply-To: <4D2AF2C3.8010306@freyther.de>


> On 01/11/2011 10:12 AM, Wei Yongjun wrote:
>>> The sctp_packet has a pointer to sctp_transport. Does every sctp_transport
>>> hold a valid pointer to sctp_association? Does it hold a valid pointer if
>> assoc not always valid, when we response to an OOTB packet, the
>> assoc will be NULL.
> Thanks, I am sorry if the next question is totally obvious. I am obviously not
> too familiar with SCTP and the implementation here. For an OOTB packet we
> first check if we want to ignore it according to the RFC and then it will be
> placed in sctp_inq_push(&chunk->rcvr->inqueue, chunk) and here is where I am
> lost and the below is just guessing.
>
>
> --- a/net/sctp/output.c
> +++ b/net/sctp/output.c
> @@ -490,7 +490,7 @@ int sctp_packet_transmit(struct sctp_packet *packet)
>          *    HMAC field set to zero (as shown in Figure 6) followed by all
>          *    chunks that are placed after the AUTH chunk in the SCTP packet.
>          */
> -       if (auth)
> +       if (auth && asoc)
>                 sctp_auth_calculate_hmac(asoc, nskb,
>                                         (struct sctp_auth_chunk *)auth,
>                                         GFP_ATOMIC);
>
> Can an OOTB packet force us to calculate the hmac here?

if we don't have an association, we can't do authentication, so if auth
then asoc is not NULL.

>
>
> @@ -563,7 +563,7 @@ int sctp_packet_transmit(struct sctp_packet *packet)
>                 unsigned long timeout;
>
>                 /* Restart the AUTOCLOSE timer when sending data. */
> -               if (sctp_state(asoc, ESTABLISHED) && asoc->autoclose) {
> +               if (asoc && sctp_state(asoc, ESTABLISHED) && asoc->autoclose) {
>                         timer = &asoc->timers[SCTP_EVENT_TIMEOUT_AUTOCLOSE];
>                         timeout = asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE];
>
>
> Can an OOTB packet contain data chunks that would make us go through this path?

AUTOCLOSE timer is only start when we have association, so this will
not happen.



>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

  parent reply	other threads:[~2011-01-12  1:00 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-10 11:51 Question regarding struct sctp_association Holger Hans Peter Freyther
2011-01-11  9:12 ` Wei Yongjun
2011-01-11 10:29 ` Holger Hans Peter Freyther
2011-01-12  1:00 ` Wei Yongjun [this message]
2011-01-12 14:35 ` Holger Hans Peter Freyther

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D2CFD2C.5010801@cn.fujitsu.com \
    --to=yjwei@cn.fujitsu.com \
    --cc=linux-sctp@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.