summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/hard_keepalive.c24
-rw-r--r--src/log.c41
-rw-r--r--src/log.h1
3 files changed, 54 insertions, 12 deletions
diff --git a/src/hard_keepalive.c b/src/hard_keepalive.c
index e25fbea..39c81a8 100644
--- a/src/hard_keepalive.c
+++ b/src/hard_keepalive.c
@@ -19,6 +19,7 @@
#include "hard_keepalive.h"
#include "main.h"
+#include "MESA_handle_logger.h"
extern frag_rssb_parameter_t g_frag_run;
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(buf+MY_ID_OFFSET, buf+YOUR_ID_OFFSET, ID_SIZE);
memcpy(buf+YOUR_ID_OFFSET, discriminator_temp, ID_SIZE);
- /*���Ͷ���state״̬*/
- int state = 0;
- for(int i=0;i<g_frag_cfg.bfd_down_num;i++)
+ /*���Ͷ���state״̬*/
+ 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);
- }
+ state &= getbit(g_frag_cfg.bfd_down_stat,i);
+ }
+
if(state)
{
- /*STATE_DOWN 2bit: 0 1*/
- clrbit(((bfd_header_t*)buf )->flags,8);
- setbit(((bfd_header_t*)buf )->flags,7);
+ /*STATE_DOWN 2bit: 0 1*/
+ 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.",
@@ -152,9 +154,9 @@ void* thread_hard_keepalive(void *param)
}
else
{
- /*STATE_UP 2bit: 1 1*/
- setbit(((bfd_header_t*)buf )->flags,8);
- setbit(((bfd_header_t*)buf )->flags,7);
+ /*STATE_UP 2bit: 1 1*/
+ setbit(((bfd_header_t*)buf)->flags,7);
+ setbit(((bfd_header_t*)buf)->flags,6);
}
send_rec = udp_socket_send(recv_pkt_sd,
src_ip,
diff --git a/src/log.c b/src/log.c
index c0997f9..c597468 100644
--- a/src/log.c
+++ b/src/log.c
@@ -25,6 +25,9 @@
#include "frag_reassembly_in.h"
#include "log.h"
#include "main.h"
+#include "MESA_handle_logger.h"
+#include "hard_keepalive.h"
+
extern frag_rssb_parameter_t g_frag_run;
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);
}
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()
diff --git a/src/log.h b/src/log.h
index 7bf62e0..a436174 100644
--- a/src/log.h
+++ b/src/log.h
@@ -23,6 +23,7 @@ typedef long atomic_t;
#define setbit(x,y) x|=(1<<y)
#define clrbit(x,y) x&=~(1<<y)
+#define getbit(x,y) ((x) >> (y)&1)
/*********************************************debug log type***********************************/
typedef enum