KEEPLIVE
This commit is contained in:
@@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
#include "hard_keepalive.h"
|
#include "hard_keepalive.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
#include "MESA_handle_logger.h"
|
||||||
|
|
||||||
extern frag_rssb_parameter_t g_frag_run;
|
extern frag_rssb_parameter_t g_frag_run;
|
||||||
extern frag_rssb_configure_t g_frag_cfg;
|
extern frag_rssb_configure_t g_frag_cfg;
|
||||||
@@ -134,17 +135,18 @@ void* thread_hard_keepalive(void *param)
|
|||||||
memcpy(discriminator_temp, buf+MY_ID_OFFSET, ID_SIZE);
|
memcpy(discriminator_temp, buf+MY_ID_OFFSET, ID_SIZE);
|
||||||
memcpy(buf+MY_ID_OFFSET, buf+YOUR_ID_OFFSET, ID_SIZE);
|
memcpy(buf+MY_ID_OFFSET, buf+YOUR_ID_OFFSET, ID_SIZE);
|
||||||
memcpy(buf+YOUR_ID_OFFSET, discriminator_temp, ID_SIZE);
|
memcpy(buf+YOUR_ID_OFFSET, discriminator_temp, ID_SIZE);
|
||||||
/*<2A><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>state״̬*/
|
/*<2A><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>state״̬*/
|
||||||
int state = 0;
|
uint64_t state = getbit(g_frag_cfg.bfd_down_stat,0);
|
||||||
for(int i=0;i<g_frag_cfg.bfd_down_num;i++)
|
for(uint64_t i=1;i<g_frag_cfg.bfd_down_num;i++)
|
||||||
{
|
{
|
||||||
state &= getbit(g_frag_cfg.bfd_down_stat,i);
|
state &= getbit(g_frag_cfg.bfd_down_stat,i);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(state)
|
if(state)
|
||||||
{
|
{
|
||||||
/*STATE_DOWN 2bit: 0 1*/
|
/*STATE_DOWN 2bit: 0 1*/
|
||||||
clrbit(((bfd_header_t*)buf
|
clrbit(((bfd_header_t*)buf)->flags,7);
|
||||||
)->flags,8);
|
setbit(((bfd_header_t*)buf)->flags,6);
|
||||||
printf("wait_queue is overflow, app is down.\n");
|
printf("wait_queue is overflow, app is down.\n");
|
||||||
MESA_handle_runtime_log(g_frag_run.logger, RLOG_LV_FATAL, FRAG_REASSEMBLY_MODULE_NAME,
|
MESA_handle_runtime_log(g_frag_run.logger, RLOG_LV_FATAL, FRAG_REASSEMBLY_MODULE_NAME,
|
||||||
"{%s:%d} wait_queue is overflow, app is down.",
|
"{%s:%d} wait_queue is overflow, app is down.",
|
||||||
@@ -152,9 +154,9 @@ void* thread_hard_keepalive(void *param)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
else
|
/*STATE_UP 2bit: 1 1*/
|
||||||
{
|
setbit(((bfd_header_t*)buf)->flags,7);
|
||||||
/*STATE_UP 2bit: 1 1*/
|
setbit(((bfd_header_t*)buf)->flags,6);
|
||||||
}
|
}
|
||||||
send_rec = udp_socket_send(recv_pkt_sd,
|
send_rec = udp_socket_send(recv_pkt_sd,
|
||||||
src_ip,
|
src_ip,
|
||||||
|
|||||||
41
src/log.c
41
src/log.c
@@ -25,6 +25,9 @@
|
|||||||
#include "frag_reassembly_in.h"
|
#include "frag_reassembly_in.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
#include "MESA_handle_logger.h"
|
||||||
|
#include "hard_keepalive.h"
|
||||||
|
|
||||||
|
|
||||||
extern frag_rssb_parameter_t g_frag_run;
|
extern frag_rssb_parameter_t g_frag_run;
|
||||||
extern frag_rssb_configure_t g_frag_cfg;
|
extern frag_rssb_configure_t g_frag_cfg;
|
||||||
@@ -381,7 +384,43 @@ void get_rssb_queuelog_count()
|
|||||||
setbit(g_frag_cfg.bfd_down_stat,g_frag_cfg.bfd_down_index);
|
setbit(g_frag_cfg.bfd_down_stat,g_frag_cfg.bfd_down_index);
|
||||||
}
|
}
|
||||||
g_frag_cfg.bfd_down_index++;
|
g_frag_cfg.bfd_down_index++;
|
||||||
g_frag_cfg.bfd_down_index = g_frag_cfg.bfd_down_index%g_frag_cfg.bfd_down_num;
|
g_frag_cfg.bfd_down_index = g_frag_cfg.bfd_down_index%g_frag_cfg.bfd_down_num;
|
||||||
|
|
||||||
|
/*
|
||||||
|
uint64_t state = getbit(g_frag_cfg.bfd_down_stat,0);
|
||||||
|
for(uint64_t i=1;i<g_frag_cfg.bfd_down_num;i++)
|
||||||
|
{
|
||||||
|
state &= getbit(g_frag_cfg.bfd_down_stat,i);
|
||||||
|
}
|
||||||
|
printf("%lld\n", g_frag_cfg.bfd_down_stat);
|
||||||
|
printf("%d\n\n", state);
|
||||||
|
if(state)
|
||||||
|
{
|
||||||
|
printf("wait_queue is overflow, app is down.\n");
|
||||||
|
MESA_handle_runtime_log(g_frag_run.logger, RLOG_LV_FATAL, FRAG_REASSEMBLY_MODULE_NAME,
|
||||||
|
"{%s:%d} wait_queue is overflow, app is down.",
|
||||||
|
__FILE__,__LINE__);
|
||||||
|
}
|
||||||
|
|
||||||
|
char buf[1500] = {0};
|
||||||
|
setbit(((bfd_header_t*)buf)->flags,7);
|
||||||
|
setbit(((bfd_header_t*)buf)->flags,6);
|
||||||
|
if(state)
|
||||||
|
{
|
||||||
|
clrbit(((bfd_header_t*)buf)->flags,7);
|
||||||
|
setbit(((bfd_header_t*)buf)->flags,6);
|
||||||
|
printf("wait_queue is overflow, app is down.\n");
|
||||||
|
MESA_handle_runtime_log(g_frag_run.logger, RLOG_LV_FATAL, FRAG_REASSEMBLY_MODULE_NAME,
|
||||||
|
"{%s:%d} wait_queue is overflow, app is down.",
|
||||||
|
__FILE__,__LINE__);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
setbit(((bfd_header_t*)buf)->flags,7);
|
||||||
|
setbit(((bfd_header_t*)buf)->flags,6);
|
||||||
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void get_rssb_hashlog_count()
|
void get_rssb_hashlog_count()
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ typedef long atomic_t;
|
|||||||
|
|
||||||
#define setbit(x,y) x|=(1<<y)
|
#define setbit(x,y) x|=(1<<y)
|
||||||
#define clrbit(x,y) x&=~(1<<y)
|
#define clrbit(x,y) x&=~(1<<y)
|
||||||
|
#define getbit(x,y) ((x) >> (y)&1)
|
||||||
|
|
||||||
/*********************************************debug log type***********************************/
|
/*********************************************debug log type***********************************/
|
||||||
typedef enum
|
typedef enum
|
||||||
|
|||||||
Reference in New Issue
Block a user