commit: r663 - trunk/daemon
[email protected] Mon, 20 Jan 2014 22:49:35 -0500
| Newsgroups | gmane.network.spread.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: jschultz
Date: 2014-01-20 22:49:35 -0500 (Mon, 20 Jan 2014)
New Revision: 663
Modified:
trunk/daemon/configuration.c
trunk/daemon/configuration.h
trunk/daemon/membership.c
trunk/daemon/membership.h
trunk/daemon/network.c
trunk/daemon/protocol.c
Log:
svn merge -r626:662 branches/spread_4_2_debug trunk
plus deconflict
Modified: trunk/daemon/configuration.c
===================================================================
--- trunk/daemon/configuration.c 2014-01-21 03:19:09 UTC (rev 662)
+++ trunk/daemon/configuration.c 2014-01-21 03:49:35 UTC (rev 663)
@@ -705,7 +705,8 @@
if( config->segments[i].num_procs > 0 )
return( config->segments[i].procs[0]->id );
}
- Alarm( EXIT, "Conf_leader: Empty configuration %c",Conf_print(config));
+ Conf_print( config );
+ Alarm( EXIT, "Conf_leader: Empty configuration\n" );
return( -1 );
}
@@ -721,7 +722,8 @@
return( config->segments[i].procs[j]->id );
}
}
- Alarm( EXIT, "Conf_last: Empty configuration %c",Conf_print(config));
+ Conf_print( config );
+ Alarm( EXIT, "Conf_last: Empty configuration\n" );
return( -1 );
}
@@ -770,8 +772,8 @@
{
return( config->segments[seg_index].procs[0]->id );
}
- Alarm( EXIT, "Conf_seg_leader: Empty segment %d in Conf %c",
- seg_index, Conf_print(config));
+ Conf_print( config );
+ Alarm( EXIT, "Conf_seg_leader: Empty segment %d in Conf\n", seg_index );
return( -1 );
}
@@ -784,8 +786,8 @@
j = config->segments[seg_index].num_procs-1;
return( config->segments[seg_index].procs[j]->id );
}
- Alarm( EXIT, "Conf_seg_leader: Empty segment %d in Conf %c",
- seg_index, Conf_print(config));
+ Conf_print( config );
+ Alarm( EXIT, "Conf_seg_leader: Empty segment %d in Conf\n", seg_index );
return(-1);
}
@@ -805,7 +807,7 @@
sprintf( str, "%u.%u.%u.%u", i1, i2, i3, i4 );
}
-char Conf_print(configuration *config)
+int Conf_print(configuration *config)
{
int s,p,ret;
char ip[16];
@@ -829,11 +831,11 @@
}
}
Alarm( PRINT, "====================\n" );
- return( '\n' );
+ return( 0 );
}
-char Conf_print_procs(configuration *config)
+int Conf_print_procs(configuration *config)
{
int i;
char ip[16];
@@ -849,7 +851,7 @@
ip, config->allprocs[i].num_if);
}
Alarm( PRINT, "====================\n" );
- return( '\n' );
+ return( 0 );
}
bool Conf_get_dangerous_monitor_state(void)
Modified: trunk/daemon/configuration.h
===================================================================
--- trunk/daemon/configuration.h 2014-01-21 03:19:09 UTC (rev 662)
+++ trunk/daemon/configuration.h 2014-01-21 03:49:35 UTC (rev 663)
@@ -113,8 +113,8 @@
int Conf_append_id_to_seg( segment *seg, int32u id);
int Conf_num_procs_in_seg( configuration *config, int16 seg_index );
void Conf_id_to_str( int32u id, char *str );
-char Conf_print(configuration *config);
-char Conf_print_procs(configuration *config);
+int Conf_print(configuration *config);
+int Conf_print_procs(configuration *config);
bool Conf_in_reload_state(void);
void Conf_reload_state_begin(void);
Modified: trunk/daemon/membership.c
===================================================================
--- trunk/daemon/membership.c 2014-01-21 03:19:09 UTC (rev 662)
+++ trunk/daemon/membership.c 2014-01-21 03:49:35 UTC (rev 663)
@@ -79,6 +79,8 @@
int16 num_trans;
} ring_info;
+bool Memb_Just_Installed = FALSE; /* tracks if we just installed a reg memb due to last token we sent */
+
static configuration Membership;
static membership_id Membership_id;
static configuration Future_membership;
@@ -866,10 +868,11 @@
}
Token_alive = 0;
- E_dequeue( Memb_token_loss_event, 0, NULL );
- E_dequeue( Send_join_event, 0, NULL );
- E_dequeue( Form_or_fail_event, 0, NULL );
- E_dequeue( Prot_token_hurry_event, 0, NULL );
+ Memb_Just_Installed = FALSE;
+ E_dequeue( Memb_token_loss_event, 0, NULL );
+ E_dequeue( Send_join_event, 0, NULL );
+ E_dequeue( Form_or_fail_event, 0, NULL );
+ E_dequeue( Prot_token_hurry_event, 0, NULL );
E_dequeue( Memb_lookup_new_members_event, 0, NULL );
Last_token->type = 0;
Last_token->seq = 0;
@@ -1433,7 +1436,7 @@
rg_info->aru = Aru;
rg_info->highest_seq = Highest_seq;
- /*Alarmp(SPLOG_INFO, MEMB, "Create_form1: putting Aru = %d and Highest_Seq = %d on rg_info form1 token\n", Aru, Highest_seq);*/
+ Alarmp(SPLOG_INFO, MEMB, "Create_form1: putting Aru = %d and Highest_Seq = %d on rg_info form1 token\n", Aru, Highest_seq);
/* update holes */
rg_info->num_holes = 0;
@@ -1491,14 +1494,16 @@
if( F_members.num_pending > 0 )
{
/* send to next member in pending list */
- Net_ucast_token( F_members.members[F_members.num_members],
- &send_scat );
- Net_ucast_token( F_members.members[F_members.num_members],
- &send_scat );
+ Net_ucast_token( F_members.members[F_members.num_members], &send_scat );
+ Net_ucast_token( F_members.members[F_members.num_members], &send_scat );
+ /*Net_ucast_token( F_members.members[F_members.num_members], &send_scat );*/
+
}else if( F_reps.rep_index < F_reps.num_reps){
/* send to next rep */
Net_ucast_token( F_reps.reps[F_reps.rep_index].proc_id, &send_scat );
Net_ucast_token( F_reps.reps[F_reps.rep_index].proc_id, &send_scat );
+ /*Net_ucast_token( F_reps.reps[F_reps.rep_index].proc_id, &send_scat );*/
+
}else{
/* singleton membership */
F_members.num_pending = 1;
@@ -1508,6 +1513,8 @@
form_token.rtr_len = send_scat.elements[1].len +
send_scat.elements[2].len + send_scat.elements[3].len;
Net_ucast_token( My.id, &send_scat );
+ Net_ucast_token( My.id, &send_scat );
+ /*Net_ucast_token( My.id, &send_scat );*/
}
E_dequeue( Send_join_event, 0, NULL );
@@ -1721,7 +1728,7 @@
new_rg_info->aru = Aru;
new_rg_info->highest_seq = Highest_seq;
- /*Alarmp(SPLOG_INFO, MEMB, "Fill_form1: Putting Aru = %d and Highest_seq = %d on new_rg_info of form1 token\n", Aru, Highest_seq);*/
+ Alarmp(SPLOG_INFO, MEMB, "Fill_form1: Putting Aru = %d and Highest_seq = %d on new_rg_info of form1 token\n", Aru, Highest_seq);
if( my_rg_info == NULL )
{
@@ -1794,14 +1801,12 @@
if( my_rg_info->aru > Aru ) {
new_rg_info->aru = my_rg_info->aru;
- /*Alarmp( SPLOG_INFO, MEMB, "my_rg_info->aru (%d) > Aru (%d) -> setting new_rg_info->aru to my_rg_info\n",
- my_rg_info->aru, Aru );*/
+ Alarmp( SPLOG_INFO, MEMB, "my_rg_info->aru (%d) > Aru (%d) -> setting new_rg_info->aru to my_rg_info\n", my_rg_info->aru, Aru );
}
if( my_rg_info->highest_seq > Highest_seq ) {
new_rg_info->highest_seq= my_rg_info->highest_seq;
- /*Alarmp( SPLOG_INFO, MEMB, "my_rg_info->highest_seq (%d) > Highest_seq (%d) -> setting new_rg_info->highest_seq to my_rg_info\n",
- my_rg_info->highest_seq, Highest_seq );*/
+ Alarmp( SPLOG_INFO, MEMB, "my_rg_info->highest_seq (%d) > Highest_seq (%d) -> setting new_rg_info->highest_seq to my_rg_info\n", my_rg_info->highest_seq, Highest_seq );
}
for( i=0; i < my_rg_info->num_holes; i++ )
@@ -1893,11 +1898,13 @@
/* send to next member in pending list */
Net_ucast_token( m_info->members[m_info->num_members], &send_scat );
Net_ucast_token( m_info->members[m_info->num_members], &send_scat );
+ /*Net_ucast_token( m_info->members[m_info->num_members], &send_scat );*/
}else if( r_info->rep_index < r_info->num_reps){
/* send to next rep */
Net_ucast_token( r_info->reps[r_info->rep_index].proc_id, &send_scat );
Net_ucast_token( r_info->reps[r_info->rep_index].proc_id, &send_scat );
+ /*Net_ucast_token( r_info->reps[r_info->rep_index].proc_id, &send_scat );*/
}else{
/* prepare form2 token */
@@ -1911,6 +1918,7 @@
send_scat.elements[2].len + send_scat.elements[3].len;
Net_ucast_token( m_info->members[0], &send_scat );
Net_ucast_token( m_info->members[0], &send_scat );
+ /*Net_ucast_token( m_info->members[0], &send_scat );*/
}
E_dequeue( Send_join_event, 0, NULL );
@@ -2041,8 +2049,7 @@
*num_rings, num_bytes, Membership_id.proc_id, Membership_id.time);
}
- /*Alarmp( SPLOG_INFO, MEMB, "Read_form2: updating Highest_seq %d -> %d; Aru %d -> %d\n",
- Highest_seq, my_rg_info->highest_seq, Aru, my_rg_info->aru );*/
+ Alarmp( SPLOG_INFO, MEMB, "Read_form2: updating Highest_seq %d -> %d; Aru %d -> %d\n", Highest_seq, my_rg_info->highest_seq, Aru, my_rg_info->aru );
Highest_seq = my_rg_info->highest_seq;
Aru = my_rg_info->aru;
@@ -2100,6 +2107,7 @@
{
Net_send_token( &send_scat );
Net_send_token( &send_scat );
+ /*Net_send_token( &send_scat );*/
Token_rounds = 0;
}else{
@@ -2108,12 +2116,14 @@
form_token->type = 0;
form_token->seq = 0;
- form_token->aru = Last_seq; /* TODO: is this right? if so, shouldn't we set Last_token this way too below? */
+ form_token->aru = INT32_MAX; /* leader will lower to his My_aru */
+ form_token->aru_last_id = -1; /* leader will set to My.id */
form_token->flow_control = 0;
form_token->rtr_len = 0;
Net_send_token( &send_scat );
Net_send_token( &send_scat );
+ /*Net_send_token( &send_scat );*/
Token_rounds = 1;
}
Token_alive = 1;
@@ -2124,6 +2134,9 @@
Last_token->seq = 0;
Last_token->aru = 0;
+ Aru = 0;
+ Alarmp( SPLOG_INFO, MEMB, "Read_form2: updating Aru to %d!\n", Aru );
+
State = EVS;
GlobalStatus.state = EVS;
}
@@ -2286,8 +2299,7 @@
int pack_entry;
int i;
- /*Alarmp( SPLOG_INFO, MEMB, "Backoff_membership entered: Last_discarded = %d; Highest_seq = %d; Aru = %d; My_aru = %d\n",
- Last_discarded, Highest_seq, Aru, My_aru );*/
+ Alarmp( SPLOG_INFO, MEMB, "Backoff_membership entered: Last_discarded = %d; Highest_seq = %d; Aru = %d; My_aru = %d\n", Last_discarded, Highest_seq, Aru, My_aru );
pack_entry=-1;
for( i=Last_discarded+1; i <= Highest_seq; i++ )
@@ -2311,8 +2323,7 @@
My_aru++;
}
- /*Alarmp( SPLOG_INFO, MEMB, "Backoff_membership leaving: Last_discarded = %d; Highest_seq = %d; Aru = %d; My_aru = %d\n",
- Last_discarded, Highest_seq, Aru, My_aru );*/
+ Alarmp( SPLOG_INFO, MEMB, "Backoff_membership leaving: Last_discarded = %d; Highest_seq = %d; Aru = %d; My_aru = %d\n", Last_discarded, Highest_seq, Aru, My_aru );
}
void Memb_commit()
@@ -2381,6 +2392,7 @@
Alarm( MEMB, "Memb_regular\n");
Transitional = 0;
+ Memb_Just_Installed = TRUE;
GlobalStatus.membership_changes++;
@@ -2403,9 +2415,11 @@
Foreign_found = 0;
if( Conf_leader( &Membership ) == My.id )
E_queue( Memb_lookup_new_members_event, 0, NULL, Lookup_timeout );
- printf("Membership id is ( %d, %d)\n", Membership_id.proc_id, Membership_id.time );
- printf("%c", Conf_print( &Membership ) );
+ Alarm( PRINT, "Membership id is ( %d, %d)\n", Membership_id.proc_id, Membership_id.time );
+ Conf_print( &Membership );
+ Alarm( PRINT, "\n" );
+
Shift_to_op();
}
Modified: trunk/daemon/membership.h
===================================================================
--- trunk/daemon/membership.h 2014-01-21 03:19:09 UTC (rev 662)
+++ trunk/daemon/membership.h 2014-01-21 03:49:35 UTC (rev 663)
@@ -68,4 +68,6 @@
void Memb_regular();
void Memb_print_form_token( sys_scatter *scat );
+extern bool Memb_Just_Installed;
+
#endif /* INC_MEMBERSHIP */
Modified: trunk/daemon/network.c
===================================================================
--- trunk/daemon/network.c 2014-01-21 03:19:09 UTC (rev 662)
+++ trunk/daemon/network.c 2014-01-21 03:49:35 UTC (rev 663)
@@ -166,9 +166,10 @@
Net_membership = memb;
my_seg = Net_membership.segments[My.seg_index];
my_index_in_seg = Conf_id_in_seg( &my_seg, My.id );
- if( my_index_in_seg < 0 )
- Alarm( EXIT,"Net_set_membership: I am not in membership %c",
- Conf_print( &Net_membership ) );
+ if( my_index_in_seg < 0 ) {
+ Conf_print( &Net_membership );
+ Alarm( EXIT, "Net_set_membership: I am not in membership\n" );
+ }
else if( my_index_in_seg == 0) {
Segment_leader = 1;
Alarm( NETWORK,"Net_set_membership: I am a Segment leader\n");
@@ -479,11 +480,9 @@
token_ptr->conf_hash = Cn->hash_code;
token_ptr->transmiter_id = My.id;
- Alarmp( SPLOG_INFO, NETWORK,
- "Net_send_token: type = 0x%08X; transmitter_id = 0x%08X; seq = %d; proc_id = 0x%08X\n"
- "\taru = %d; aru_last_id = 0x%08X; Token_address = 0x%08X\n",
- token_ptr->type, token_ptr->transmiter_id, token_ptr->seq, token_ptr->proc_id,
- token_ptr->aru, token_ptr->aru_last_id, Token_address );
+ Alarmp( SPLOG_INFO, PROTOCOL,
+ "Net_send_token: type = 0x%08X; transmitter_id = 0x%08X; seq = %d; proc_id = 0x%08X; aru = %d; aru_last_id = 0x%08X; Token_address = 0x%08X\n",
+ token_ptr->type, token_ptr->transmiter_id, token_ptr->seq, token_ptr->proc_id, token_ptr->aru, token_ptr->aru_last_id, Token_address );
if ( token_ptr->rtr_len > (MAX_PACKET_SIZE - sizeof(token_header) ) )
{
Modified: trunk/daemon/protocol.c
===================================================================
--- trunk/daemon/protocol.c 2014-01-21 03:19:09 UTC (rev 662)
+++ trunk/daemon/protocol.c 2014-01-21 03:49:35 UTC (rev 663)
@@ -74,8 +74,6 @@
static int32 Prev_proc_id; /* predecessor in ring (i.e. process that sends me the token) */
static bool Token_has_priority; /* true when token channels have higher priority than bcast channels */
-
-static int32 Set_aru;
static int Token_counter;
/* Used ONLY in Prot_handle_bcast, inited in Prot_init */
@@ -92,10 +90,6 @@
/* Used to indicate a need to reload configuration at end of current membership */
static bool Prot_Need_Conf_Reload = FALSE;
-
-/* Used to indicate if we just installed a reg memb due to last token we sent */
-static bool Just_Installed = FALSE;
-
static down_queue Protocol_down_queue[2]; /* only used in spread3 */
static void Prot_handle_bcast(int fd, int dmy, void *dmy_ptr);
@@ -146,7 +140,6 @@
Highest_fifo_seq = INITIAL_SEQUENCE_NEAR_WRAP;
My_aru = INITIAL_SEQUENCE_NEAR_WRAP;
Aru = INITIAL_SEQUENCE_NEAR_WRAP;
- Set_aru = INITIAL_SEQUENCE_NEAR_WRAP -1;
Last_discarded = INITIAL_SEQUENCE_NEAR_WRAP;
Last_delivered = INITIAL_SEQUENCE_NEAR_WRAP;
} else {
@@ -154,7 +147,6 @@
Highest_fifo_seq = 0;
My_aru = 0;
Aru = 0;
- Set_aru = -1;
Last_discarded = 0;
Last_delivered = 0;
}
@@ -524,7 +516,7 @@
}
Alarmp( SPLOG_INFO, PROTOCOL,
- "Prot_handle_token: type = 0x%08X; transmitter = 0x%08X; seq = %d; proc_id = 0x%08X; aru = %d; aru_last_id = 0x%08X;\n",
+ "\nProt_handle_token: type = 0x%08X; transmitter = 0x%08X; seq = %d; proc_id = 0x%08X; aru = %d; aru_last_id = 0x%08X;\n",
Token->type, Token->transmiter_id, Token->seq, Token->proc_id, Token->aru, Token->aru_last_id );
if( ret != sizeof(token_header) + Token->rtr_len )
@@ -554,10 +546,11 @@
/* received double token - swallow it */
goto END;
- } else if (Memb_state() == OP && Just_Installed) {
- Just_Installed = FALSE;
- Last_token->aru = 0; /* wipe out EVS aru on last token due to transitioning from EVS -> OP */
+ } else if (Memb_Just_Installed) {
+ Memb_Just_Installed = FALSE;
/* NOTE: we do this now rather than just when we installed to allow proper token retransmissions */
+ Last_token->aru = 0; /* wipe out EVS aru on last token due to transitioning from EVS -> OP */
+ Alarmp(SPLOG_INFO, PROTOCOL, "Prot_handle_token: leader just installed; setting Last_token->aru = 0!\n");
}
}else{
@@ -587,10 +580,11 @@
} else {
- if (Memb_state() == OP && Just_Installed) {
- Just_Installed = FALSE;
- Last_token->aru = 0; /* wipe out EVS aru on last token due to transitioning from EVS -> OP */
+ if (Memb_Just_Installed) {
+ Memb_Just_Installed = FALSE;
/* NOTE: we do this now rather than just when we installed to allow proper token retransmissions */
+ Last_token->aru = 0; /* wipe out EVS aru on last token due to transitioning from EVS -> OP */
+ Alarmp(SPLOG_INFO, PROTOCOL, "Prot_handle_token: not-leader just installed; setting Last_token->aru = 0!\n");
}
if ( Get_retrans(Token->type) > 0 ) {
@@ -711,21 +705,18 @@
Token->rtr_len = new_ptr;
New_token.elements[1].len = new_ptr;
- /* Calculating Token->aru and Set_aru */
- if( ( Token->aru == Set_aru ) ||
- ( Token->aru_last_id == My.id ) ||
- ( Token->aru == Token->seq && Memb_state() != EVS ) ) /* NOTE: Token->seq is meaningless in EVS */
- {
- Token->aru = My_aru;
- Token->aru_last_id = My.id;
- if( My_aru < Highest_seq ) Set_aru = My_aru;
- else Set_aru = -1;
- }else if( Token->aru > My_aru ) {
- Token->aru = My_aru;
- Token->aru_last_id = My.id;
- Set_aru = My_aru;
- }else{
- Set_aru = -1;
+ /* Calculating Token->aru and Token->aru_last_id */
+
+ Alarmp( SPLOG_INFO, PROTOCOL, "Prot_handle_token: calculating Token->aru and Token->aru_last_id: Token->aru = %d, My_aru = %d, Token->aru_last_id = 0x%08X, My.id = 0x%08X, Token->seq = %d, Memb_state() = %d\n",
+ Token->aru, My_aru, Token->aru_last_id, My.id, Token->seq, Memb_state() );
+
+ if ( Token->aru > My_aru || /* this daemon is missing packets: lower aru to My_aru */
+ Token->aru_last_id == My.id || /* this daemon last updated aru: try raising to My_aru */
+ ( Token->aru == Token->seq && Memb_state() != EVS ) ) { /* everyone has everything so far: try raising to My_aru; NOTE: Token->seq is meaningless in EVS */
+
+ Token->aru = My_aru;
+ Token->aru_last_id = My.id;
+ Alarmp( SPLOG_INFO, PROTOCOL, "Prot_handle_token: setting Token->aru = %d, Token->aru_last_id = 0x%08X\n", Token->aru, Token->aru_last_id );
}
Token->proc_id = My.id;
@@ -770,12 +761,26 @@
/* calculating Aru */
if( Token->aru > Last_token->aru ) {
- /*Alarmp( SPLOG_INFO, PROTOCOL, "Prot_handle_token: updating Aru from Last_token; Aru %d -> %d\n", Aru, Last_token->aru );*/
+
+ if ( Last_token->aru >= Aru ) {
+ Alarmp( SPLOG_INFO, PROTOCOL, "Prot_handle_token: updating Aru from Last_token: Aru %d -> %d; (Token->aru = %d)\n", Aru, Last_token->aru, Token->aru );
+
+ } else {
+ Alarmp( SPLOG_FATAL, PROTOCOL, "Prot_handle_token: illegally lowering Aru from Last_token: Aru %d -> %d; (Token->aru = %d)\n", Aru, Last_token->aru, Token->aru );
+ }
+
Aru = Last_token->aru;
} else {
- /*Alarmp( SPLOG_INFO, PROTOCOL, "Prot_handle_token: updating Aru from Token; Aru %d -> %d\n", Aru, Token->aru );*/
+
+ if ( Token->aru >= Aru ) {
+ Alarmp( SPLOG_INFO, PROTOCOL, "Prot_handle_token: updating Aru from Token: Aru %d -> %d; (Last_token->aru = %d)\n", Aru, Token->aru, Last_token->aru);
+ } else {
+ Alarmp( SPLOG_FATAL, PROTOCOL, "Prot_handle_token: illegally lowering Aru from Token: Aru %d -> %d; (Last_token->aru = %d)\n", Aru, Token->aru, Last_token->aru);
+ }
+
Aru = Token->aru;
}
+
if( Highest_seq == Aru ) Token_counter++;
else Token_counter = 0;
@@ -821,7 +826,7 @@
GlobalStatus.token_rounds = Token_rounds;
END:
- /*Alarmp( SPLOG_INFO, PROTOCOL, "Prot_handle_token: LEAVING!\n" )*/;
+ Alarmp( SPLOG_INFO, PROTOCOL, "Prot_handle_token: LEAVING!\n\n" );
}
/* Provide boolean result of whether the membership system needs to initiate a configuration reload
@@ -1626,7 +1631,6 @@
/* calculate and deliver regular membership */
Memb_regular();
- Just_Installed = TRUE;
Log_membership();
reg_memb_id = Memb_id();
@@ -1653,7 +1657,6 @@
Highest_fifo_seq = INITIAL_SEQUENCE_NEAR_WRAP;
My_aru = INITIAL_SEQUENCE_NEAR_WRAP;
Aru = INITIAL_SEQUENCE_NEAR_WRAP;
- Set_aru = INITIAL_SEQUENCE_NEAR_WRAP - 1;
Last_discarded = INITIAL_SEQUENCE_NEAR_WRAP;
Last_delivered = INITIAL_SEQUENCE_NEAR_WRAP;
} else {
@@ -1661,12 +1664,11 @@
Highest_fifo_seq = 0;
My_aru = 0;
Aru = 0;
- Set_aru = -1;
Last_discarded = 0;
Last_delivered = 0;
}
- /*Alarmp( SPLOG_INFO, PROTOCOL, "Discard_packets: Updated Aru to %d for next membership\n", Aru );*/
+ Alarmp( SPLOG_INFO, PROTOCOL, "Discard_packets: Updated Aru to %d for next membership\n", Aru );
GlobalStatus.my_aru = My_aru;
Token_counter = 0;