diff options
| author | lishu <[email protected]> | 2019-04-02 09:32:33 +0800 |
|---|---|---|
| committer | lishu <[email protected]> | 2019-04-02 09:32:33 +0800 |
| commit | fb46b33447c87c0dc4943436cf26657ca6b12c25 (patch) | |
| tree | 86796890c92198da46725b55ce1a63475f5a5c57 /src | |
| parent | e2c4b4e6a104162d3234c5e6a59756da254918dc (diff) | |
KEEPLIVE
Diffstat (limited to 'src')
| -rw-r--r-- | src/hard_keepalive.c | 24 | ||||
| -rw-r--r-- | src/log.c | 41 | ||||
| -rw-r--r-- | src/log.h | 1 |
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,
@@ -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() @@ -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 |
