src/amf/amfd/evt.h          |   2 +-
 src/amf/amfd/main.cc        |   6 +++---
 src/amf/amfnd/main.cc       |   2 +-
 src/amf/common/amf_d2nmsg.h |  11 ++++++++---
 src/amf/common/d2nedu.c     |  12 ++++++------
 5 files changed, 19 insertions(+), 14 deletions(-)


When opensafd orders amfnd to shutdown node, amfnd firstly removes
all assignments, secondly terminates all components. The step of
assignment removal which includes applications' assignment that
produces many IMM updates towards amfd, amfd could have many pending
IMM update jobs at this stage. Therefore, amfd should by somehow
try to execute all pending jobs after the first stage and before the
second stage in which amfnd terminates IMM components. Based on this
analysis, a new message called NODE_DOWN_MSG is introduced as following

    AMFND               AMFD
      |                  |
    "Remove all assignments"
      |                  |
      |--NODE_DOWN_MSG-->|
      |<------ACK--------|
      |                  |
    "Terminates all components"
      |                  |

This patch is the first patch of series to introduce NODE_DOWN_MSG,
which is a replacement of unused message SHUTDOWN_APP_SU_MSG.

diff --git a/src/amf/amfd/evt.h b/src/amf/amfd/evt.h
--- a/src/amf/amfd/evt.h
+++ b/src/amf/amfd/evt.h
@@ -48,7 +48,7 @@ typedef enum avd_evt_type {
        AVD_EVT_PG_TRACK_ACT_MSG,
        AVD_EVT_OPERATION_REQUEST_MSG,
        AVD_EVT_DATA_REQUEST_MSG,
-       AVD_EVT_SHUTDOWN_APP_SU_MSG,
+       AVD_EVT_NODE_DOWN_MSG,
        AVD_EVT_VERIFY_ACK_NACK_MSG,
        AVD_EVT_COMP_VALIDATION_MSG,
        AVD_EVT_ND_SISU_STATE_INFO_MSG,
diff --git a/src/amf/amfd/main.cc b/src/amf/amfd/main.cc
--- a/src/amf/amfd/main.cc
+++ b/src/amf/amfd/main.cc
@@ -100,7 +100,7 @@ static const AVD_EVT_HDLR g_actv_list[AV
        avd_pg_trk_act_evh,      /* AVD_EVT_PG_TRACK_ACT_MSG */
        avd_oper_req_evh,        /* AVD_EVT_OPERATION_REQUEST_MSG */
        avd_data_update_req_evh, /* AVD_EVT_DATA_REQUEST_MSG */
-       invalid_evh,         /* AVD_EVT_SHUTDOWN_APP_SU_MSG */
+       invalid_evh,         /* AVD_EVT_NODE_DOWN_MSG */
        avd_ack_nack_evh,            /* AVD_EVT_VERIFY_ACK_NACK_MSG */
        avd_comp_validation_evh, /* AVD_EVT_COMP_VALIDATION_MSG */
        avd_nd_sisu_state_info_evh,       /* AVD_EVT_ND_SISU_STATE_INFO_MSG */
@@ -143,7 +143,7 @@ static const AVD_EVT_HDLR g_stndby_list[
        standby_invalid_evh,    /* AVD_EVT_PG_TRACK_ACT_MSG */
        standby_invalid_evh,    /* AVD_EVT_OPERATION_REQUEST_MSG */
        standby_invalid_evh,    /* AVD_EVT_DATA_REQUEST_MSG */
-       standby_invalid_evh,    /* AVD_EVT_SHUTDOWN_APP_SU_MSG */
+       standby_invalid_evh,    /* AVD_EVT_NODE_DOWN_MSG */
        standby_invalid_evh,    /* AVD_EVT_VERIFY_ACK_NACK_MSG */
        standby_invalid_evh,    /* AVD_EVT_COMP_VALIDATION_MSG */
        standby_invalid_evh,    /* AVD_EVT_ND_SUSI_STATE_INFO_MSG */
@@ -188,7 +188,7 @@ static const AVD_EVT_HDLR g_quiesc_list[
        qsd_ignore_evh, /* AVD_EVT_PG_TRACK_ACT_MSG */
        avd_oper_req_evh,       /* AVD_EVT_OPERATION_REQUEST_MSG */
        avd_data_update_req_evh,        /* AVD_EVT_DATA_REQUEST_MSG */
-       invalid_evh,    /* AVD_EVT_SHUTDOWN_APP_SU_MSG */
+       invalid_evh,    /* AVD_EVT_NODE_DOWN_MSG */
        qsd_invalid_evh,        /* AVD_EVT_VERIFY_ACK_NACK_MSG */
        avd_comp_validation_evh,        /* AVD_EVT_COMP_VALIDATION_MSG */
        qsd_invalid_evh,        /* AVD_EVT_ND_SISU_STATE_INFO_MSG */
diff --git a/src/amf/amfnd/main.cc b/src/amf/amfnd/main.cc
--- a/src/amf/amfnd/main.cc
+++ b/src/amf/amfnd/main.cc
@@ -65,7 +65,7 @@ extern const AVND_EVT_HDLR g_avnd_func_l
        avnd_evt_avd_su_pres_evh,       /* AVND_EVT_AVD_SU_PRES_MSG */
        avnd_evt_avd_verify_evh,        /* AVND_EVT_AVD_VERIFY_MSG */
        avnd_evt_avd_ack_evh,   /* AVND_EVT_AVD_ACK_MSG */
-       avnd_evt_invalid_evh,   /* AVND_EVT_AVD_SHUTDOWN_APP_SU_MSG */
+       avnd_evt_invalid_evh,   /* AVND_EVT_AVD_NODE_DOWN_MSG */
        avnd_evt_avd_set_leds_evh,      /* AVND_EVT_AVD_SET_LEDS_MSG */
        avnd_evt_avd_comp_validation_resp_evh,  /* 
AVND_EVT_AVD_COMP_VALIDATION_RESP_MSG */
        avnd_evt_avd_role_change_evh,   /* AVND_EVT_AVD_ROLE_CHANGE_MSG */
diff --git a/src/amf/common/amf_d2nmsg.h b/src/amf/common/amf_d2nmsg.h
--- a/src/amf/common/amf_d2nmsg.h
+++ b/src/amf/common/amf_d2nmsg.h
@@ -83,7 +83,7 @@ typedef enum {
        AVSV_N2D_PG_TRACK_ACT_MSG,
        AVSV_N2D_OPERATION_REQUEST_MSG,
        AVSV_N2D_DATA_REQUEST_MSG,
-       AVSV_N2D_SHUTDOWN_APP_SU_MSG,
+       AVSV_N2D_NODE_DOWN_MSG,
        AVSV_N2D_VERIFY_ACK_NACK_MSG,
        AVSV_N2D_COMP_VALIDATION_MSG,
        AVSV_D2N_NODE_UP_MSG,
@@ -450,6 +450,11 @@ typedef struct avsv_n2d_verify_ack_nack_
        bool ack;
 } AVSV_N2D_VERIFY_ACK_NACK_MSG_INFO;
 
+typedef struct avsv_n2d_node_down_info_tag {
+       uint32_t msg_id;
+       SaClmNodeIdT node_id;
+} AVSV_N2D_NODE_DOWN_MSG_INFO;
+
 typedef struct avsv_sisu_state_msg_tag {
        SaNameT safSU;
        SaNameT safSI;
@@ -601,7 +606,7 @@ typedef struct avsv_dnd_shutdown_app_su_
        uint32_t msg_id;
        SaClmNodeIdT node_id;   /* strictly we dont need this too msg_type
                                   is enough */
-} AVSV_D2N_SHUTDOWN_APP_SU_MSG_INFO, AVSV_N2D_SHUTDOWN_APP_SU_MSG_INFO;
+} AVSV_D2N_SHUTDOWN_APP_SU_MSG_INFO;
 
 typedef struct avsv_d2n_set_leds_msg_info_tag {
        uint32_t msg_id;
@@ -659,7 +664,7 @@ typedef struct avsv_dnd_msg {
                AVSV_N2D_OPERATION_REQUEST_MSG_INFO n2d_op_req;
                AVSV_N2D_DATA_REQUEST_MSG_INFO n2d_data_req;
                AVSV_N2D_VERIFY_ACK_NACK_MSG_INFO n2d_ack_nack_info;
-               AVSV_N2D_SHUTDOWN_APP_SU_MSG_INFO n2d_shutdown_app_su;
+               AVSV_N2D_NODE_DOWN_MSG_INFO n2d_node_down_info;
                AVSV_N2D_COMP_VALIDATION_INFO n2d_comp_valid_info;
                AVSV_N2D_ND_SISU_STATE_MSG_INFO n2d_nd_sisu_state_info;
                AVSV_N2D_ND_CSICOMP_STATE_MSG_INFO n2d_nd_csicomp_state_info;
diff --git a/src/amf/common/d2nedu.c b/src/amf/common/d2nedu.c
--- a/src/amf/common/d2nedu.c
+++ b/src/amf/common/d2nedu.c
@@ -166,11 +166,11 @@ uint32_t avsv_edp_dnd_msg(EDU_HDL *hdl, 
                {EDU_EXEC, avsv_edp_param_info, 0, 0, EDU_EXIT,
                 (long)&((AVSV_DND_MSG *)0)->msg_info.n2d_data_req.param_info, 
0, NULL},
 
-               /* AVSV_N2D_SHUTDOWN_APP_SU_MSG_INFO */
+               /* AVSV_N2D_NODE_DOWN_MSG_INFO */
                {EDU_EXEC, ncs_edp_uns32, 0, 0, 0,
-                (long)&((AVSV_DND_MSG 
*)0)->msg_info.n2d_shutdown_app_su.msg_id, 0, NULL},
+                (long)&((AVSV_DND_MSG 
*)0)->msg_info.n2d_node_down_info.msg_id, 0, NULL},
                {EDU_EXEC, m_NCS_EDP_SACLMNODEIDT, 0, 0, EDU_EXIT,
-                (long)&((AVSV_DND_MSG 
*)0)->msg_info.n2d_shutdown_app_su.node_id, 0, NULL},
+                (long)&((AVSV_DND_MSG 
*)0)->msg_info.n2d_node_down_info.node_id, 0, NULL},
 
                /* AVSV_N2D_VERIFY_ACK_NACK_MSG_INFO */
                {EDU_EXEC, ncs_edp_uns32, 0, 0, 0,
@@ -460,7 +460,7 @@ int avsv_dnd_msg_test_type_fnc(NCSCONTEX
                LCL_JMP_OFFSET_AVSV_N2D_PG_TRACK_ACT_MSG = 31,
                LCL_JMP_OFFSET_AVSV_N2D_OPERATION_REQUEST_MSG = 36,
                LCL_JMP_OFFSET_AVSV_N2D_DATA_REQUEST_MSG = 40,
-               LCL_JMP_OFFSET_AVSV_N2D_SHUTDOWN_APP_SU_MSG = 43,
+               LCL_JMP_OFFSET_AVSV_N2D_NODE_DOWN_MSG = 43,
                LCL_JMP_OFFSET_AVSV_N2D_VERIFY_ACK_NACK_MSG = 45,
                LCL_JMP_OFFSET_AVSV_D2N_CLM_NODE_UP_MSG = 48,
                LCL_JMP_OFFSET_AVSV_D2N_REG_SU_MSG = 52,
@@ -508,8 +508,8 @@ int avsv_dnd_msg_test_type_fnc(NCSCONTEX
                return LCL_JMP_OFFSET_AVSV_N2D_OPERATION_REQUEST_MSG;
        case AVSV_N2D_DATA_REQUEST_MSG:
                return LCL_JMP_OFFSET_AVSV_N2D_DATA_REQUEST_MSG;
-       case AVSV_N2D_SHUTDOWN_APP_SU_MSG:
-               return LCL_JMP_OFFSET_AVSV_N2D_SHUTDOWN_APP_SU_MSG;
+       case AVSV_N2D_NODE_DOWN_MSG:
+               return LCL_JMP_OFFSET_AVSV_N2D_NODE_DOWN_MSG;
        case AVSV_N2D_VERIFY_ACK_NACK_MSG:
                return LCL_JMP_OFFSET_AVSV_N2D_VERIFY_ACK_NACK_MSG;
        case AVSV_D2N_NODE_UP_MSG:

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to