[erlang-bugs] [BUG] SCTP_ADDR_CONFIRMED event not handled

Raimo Niskanen <>
Fri Apr 11 16:12:16 CEST 2008


On Fri, Apr 11, 2008 at 12:17:10PM +0200, Balint Reczey wrote:
> Hi,
> 
> A new SCTP_PEER_ADDR_CHANGE event named SCTP_ADDR_CONFIRMED was
> introduced in draft-ietf-tsvwg-sctpsocket-13.txt. 
> 
> It is implemented in the Linux kernel in post-2.6.21 versions 
> (commit 1ae4114dce35dd1d32ed847f60b599dbbdfd5829).
> 
> The attached patch maps the new event to the Erlang SCTP API.
> 

Thank you for your patch. It looks fine. I will take it into
our development branch as soon as possible. Unfortunately
we do not have a that late Linux kernel in our daily build
machine park (yet), nor any real SCTP load tests.

> Regards,
> Balint

> diff -Naur otp_src_R12B-1/bootstrap/lib/kernel/include/inet_sctp.hrl otp_src_R12B-1-mod/bootstrap/lib/kernel/include/inet_sctp.hrl
> --- otp_src_R12B-1/bootstrap/lib/kernel/include/inet_sctp.hrl	2008-02-06 22:16:52.000000000 +0100
> +++ otp_src_R12B-1-mod/bootstrap/lib/kernel/include/inet_sctp.hrl	2008-04-10 18:32:18.000000000 +0200
> @@ -73,7 +73,7 @@
>  %% sctp_paddr_change: Peer address is a list. Possible "state" values:
>  %%			addr_available, addr_unreachable,
>  %%			addr_removed,   addr_added,
> -%%			addr_made_prim
> +%%			addr_made_prim, addr_confirmed
>  -record(sctp_paddr_change,
>  	{
>  	  addr	    = [0,0,0,0],
> diff -Naur otp_src_R12B-1/erts/emulator/drivers/common/inet_drv.c otp_src_R12B-1-mod/erts/emulator/drivers/common/inet_drv.c
> --- otp_src_R12B-1/erts/emulator/drivers/common/inet_drv.c	2008-04-10 18:52:00.000000000 +0200
> +++ otp_src_R12B-1-mod/erts/emulator/drivers/common/inet_drv.c	2008-04-10 18:46:45.000000000 +0200
> @@ -2752,7 +2752,7 @@
>      /* For #sctp_paddr_change{}: */
>      am_addr_available,                 am_addr_unreachable, 
>      am_addr_removed,                   am_addr_added,
> -    am_addr_made_prim,
> +    am_addr_made_prim,                 am_addr_confirmed,
>      
>      /* For #sctp_remote_error{}: */
>      am_short_recv,                     am_wrong_anc_data,
> @@ -3007,6 +3007,9 @@
>  	    case SCTP_ADDR_MADE_PRIM:
>  		i = LOAD_ATOM (spec, i, am_addr_made_prim);
>  		break;
> +	    case SCTP_ADDR_CONFIRMED:
> +		i = LOAD_ATOM (spec, i, am_addr_confirmed);
> +		break;
>  	    default:
>  		ASSERT(0);
>  	    }
> @@ -3840,6 +3843,7 @@
>      INIT_ATOM(addr_removed);
>      INIT_ATOM(addr_added);
>      INIT_ATOM(addr_made_prim);
> +    INIT_ATOM(addr_confirmed);
>      
>      INIT_ATOM(short_recv);
>      INIT_ATOM(wrong_anc_data);
> diff -Naur otp_src_R12B-1/lib/kernel/include/inet_sctp.hrl otp_src_R12B-1-mod/lib/kernel/include/inet_sctp.hrl
> --- otp_src_R12B-1/lib/kernel/include/inet_sctp.hrl	2008-02-05 14:38:24.000000000 +0100
> +++ otp_src_R12B-1-mod/lib/kernel/include/inet_sctp.hrl	2008-04-10 18:41:16.000000000 +0200
> @@ -73,7 +73,7 @@
>  %% sctp_paddr_change: Peer address is a list. Possible "state" values:
>  %%			addr_available, addr_unreachable,
>  %%			addr_removed,   addr_added,
> -%%			addr_made_prim
> +%%			addr_made_prim, addr_confirmed
>  -record(sctp_paddr_change,
>  	{
>  	  addr	    = [0,0,0,0],

> _______________________________________________
> erlang-bugs mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-bugs

-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB



More information about the erlang-bugs mailing list