Re: Question regarding struct sctp_association

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Networking Development]     [Linux OMAP]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux