diff options
author | Bill Meier <wmeier@newsguy.com> | 2012-11-28 22:41:07 +0000 |
---|---|---|
committer | Bill Meier <wmeier@newsguy.com> | 2012-11-28 22:41:07 +0000 |
commit | a8112e652975ae9e626e15ade4e85370c965df47 (patch) | |
tree | 3105e7fc230def18471bd597db5bc4f84428ff2e /epan/dissectors/packet-sasp.c | |
parent | 84afa22969e1ce3dd2d30ebf585c468559e6ff7b (diff) |
Fix [-Wshadow] warnings;
Also (for one or more of the files):
- create/use one or more extended variable strings;
- remove some uneeded variable initializers;
- reformat some long lines;
- reformat hf[] entries;
- convert apparent 4-space tabs to spaces;
- do some whitespace and formatting changes to use a consistent style.
svn path=/trunk/; revision=46265
Diffstat (limited to 'epan/dissectors/packet-sasp.c')
-rw-r--r-- | epan/dissectors/packet-sasp.c | 985 |
1 files changed, 552 insertions, 433 deletions
diff --git a/epan/dissectors/packet-sasp.c b/epan/dissectors/packet-sasp.c index 9680b77712..88930359e5 100644 --- a/epan/dissectors/packet-sasp.c +++ b/epan/dissectors/packet-sasp.c @@ -36,24 +36,24 @@ /* forward reference */ static void dissect_sasp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); -static void dissect_reg_req(tvbuff_t *tvb, proto_tree *tree,guint32 offset); -static void dissect_dereg_req(tvbuff_t *tvb, proto_tree *tree,guint32 offset); -static void dissect_reg_rep(tvbuff_t *tvb, proto_tree *tree,guint32 offset); -static void dissect_dereg_rep(tvbuff_t *tvb, proto_tree *tree,guint32 offset); -static void dissect_sendwt(tvbuff_t *tvb,proto_tree *tree,guint32 offset); -static void dissect_setmemstate_req(tvbuff_t *tvb,proto_tree *tree,guint32 offset); -static void dissect_setmemstate_rep(tvbuff_t *tvb,proto_tree *tree,guint32 offset); -static void dissect_setlbstate_req(tvbuff_t *tvb, proto_tree *tree,guint32 offset); -static void dissect_setlbstate_rep(tvbuff_t *tvb, proto_tree *tree,guint32 offset); -static void dissect_wt_req(tvbuff_t *tvb,proto_tree *tree,guint32 offset); -static void dissect_wt_rep(tvbuff_t *tvb,proto_tree *tree,guint32 offset); -static guint32 dissect_memdatacomp(tvbuff_t *tvb, proto_tree *tree,guint32 offset); -static guint32 dissect_grpdatacomp(tvbuff_t *tvb,proto_tree *tree,guint32 offset); -static guint32 dissect_grp_memdatacomp(tvbuff_t *tvb, proto_tree *tree,guint32 offset); -static guint32 dissect_grp_memstatedatacomp(tvbuff_t *tvb,proto_tree *tree,guint32 offset); -static guint32 dissect_memstatedatacomp(tvbuff_t *tvb,proto_tree *tree,guint32 offset); -static guint32 dissect_weight_entry_data_comp(tvbuff_t *tvb,proto_tree *pay_load,guint32 offset); -static guint32 dissect_grp_wt_entry_datacomp(tvbuff_t *tvb,proto_tree *tree,guint32 offset); +static void dissect_reg_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset); +static void dissect_dereg_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset); +static void dissect_reg_rep(tvbuff_t *tvb, proto_tree *tree, guint32 offset); +static void dissect_dereg_rep(tvbuff_t *tvb, proto_tree *tree, guint32 offset); +static void dissect_sendwt(tvbuff_t *tvb, proto_tree *tree, guint32 offset); +static void dissect_setmemstate_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset); +static void dissect_setmemstate_rep(tvbuff_t *tvb, proto_tree *tree, guint32 offset); +static void dissect_setlbstate_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset); +static void dissect_setlbstate_rep(tvbuff_t *tvb, proto_tree *tree, guint32 offset); +static void dissect_wt_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset); +static void dissect_wt_rep(tvbuff_t *tvb, proto_tree *tree, guint32 offset); +static guint32 dissect_memdatacomp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, proto_tree **mdct_p); +static guint32 dissect_grpdatacomp(tvbuff_t *tvb, proto_tree *tree, guint32 offset); +static guint32 dissect_grp_memdatacomp(tvbuff_t *tvb, proto_tree *tree, guint32 offset); +static guint32 dissect_grp_memstatedatacomp(tvbuff_t *tvb, proto_tree *tree, guint32 offset); +static guint32 dissect_memstatedatacomp(tvbuff_t *tvb, proto_tree *tree, guint32 offset); +static guint32 dissect_weight_entry_data_comp(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset); +static guint32 dissect_grp_wt_entry_datacomp(tvbuff_t *tvb, proto_tree *tree, guint32 offset); @@ -158,21 +158,21 @@ static int hf_sasp_grp_memstatedatacomp_sz = -1; static int hf_sasp_grp_memstatedatacomp_cnt = -1; /*mem state data comp*/ -static int hf_sasp_memstatedatacomp_instance =-1; -static int hf_sasp_memstatedatacomp_sz =-1; -static int hf_sasp_memstatedatacomp_state =-1; -static int hf_sasp_memstatedatacomp_quiesce_flag =-1; +static int hf_sasp_memstatedatacomp_instance = -1; +static int hf_sasp_memstatedatacomp_sz = -1; +static int hf_sasp_memstatedatacomp_state = -1; +static int hf_sasp_memstatedatacomp_quiesce_flag = -1; /*wt entry dat comp*/ -static int hf_sasp_weight_entry_data_comp_type =-1; -static int hf_sasp_weight_entry_data_comp_sz =-1; -static int hf_sasp_weight_entry_data_comp_state =-1; +static int hf_sasp_weight_entry_data_comp_type = -1; +static int hf_sasp_weight_entry_data_comp_sz = -1; +static int hf_sasp_weight_entry_data_comp_state = -1; static int hf_wtstate_flag = -1; -static int hf_sasp_wed_contactsuccess_flag =-1; -static int hf_sasp_wed_quiesce_flag =-1; -static int hf_sasp_wed_registration_flag =-1; -static int hf_sasp_wed_confident_flag =-1; -static int hf_sasp_weight_entry_data_comp_weight =-1; +static int hf_sasp_wed_contactsuccess_flag = -1; +static int hf_sasp_wed_quiesce_flag = -1; +static int hf_sasp_wed_registration_flag = -1; +static int hf_sasp_wed_confident_flag = -1; +static int hf_sasp_weight_entry_data_comp_weight = -1; /*grp wt entry data comp */ static int hf_sasp_grp_wt_entry_datacomp_type = -1; @@ -188,23 +188,23 @@ static gint ett_sasp_payload = -1; static gint ett_sasp_reg_req = -1; static gint ett_sasp_reg_rep = -1; static gint ett_sasp_reg_req_sz = -1; -static gint ett_sasp_dereg_req_sz=-1; +static gint ett_sasp_dereg_req_sz= -1; static gint ett_sasp_dereg_rep = -1; static gint ett_sasp_sendwt = -1; static gint ett_sasp_setmemstate_rep = -1; static gint ett_sasp_memdatacomp = -1; static gint ett_sasp_grpdatacomp = -1; static gint ett_sasp_grp_memdatacomp = -1; -static gint ett_sasp_setlbstate_req =-1; -static gint ett_sasp_setlbstate_rep =-1; +static gint ett_sasp_setlbstate_req = -1; +static gint ett_sasp_setlbstate_rep = -1; static gint ett_sasp_getwt= -1; static gint ett_sasp_setmemstate_req = -1; static gint ett_setlbstate_req_lbflag = -1; -static gint ett_sasp_grp_memstatedatacomp =-1; -static gint ett_sasp_memstatedatacomp =-1; +static gint ett_sasp_grp_memstatedatacomp = -1; +static gint ett_sasp_memstatedatacomp = -1; /*static gint ett_dereg_req_reason_flag = -1;*/ static gint ett_sasp_grp_wt_entry_datacomp = -1; -static gint ett_sasp_weight_entry_data_comp =-1; +static gint ett_sasp_weight_entry_data_comp = -1; static gint ett_wt_entry_data_flag = -1; static gint ett_sasp_wt_rep = -1; @@ -232,6 +232,7 @@ static const value_string msg_table[] = { { 0x4012, "Group of Member State Data" }, { 0, NULL }, }; +static value_string_ext msg_table_ext = VALUE_STRING_EXT_INIT(msg_table); static const value_string protocol_table[] = { { 0x06, "TCP" }, @@ -257,7 +258,8 @@ static const value_string reg_reply_response_code[] = { { 0x45, "Invalid Group (determined by the GWM)"}, { 0x50, "Invalid Group Name Size (size == 0)"}, { 0x51, "Invalid LB uid Size (size == 0 or > max)"}, - { 0x61, "Member is registering itself, but LB hasn't yet contacted the GWM. This registration will not be processed."}, + { 0x61, "Member is registering itself, but LB hasn't yet contacted the GWM." + " This registration will not be processed."}, { 0, NULL }, }; @@ -271,7 +273,8 @@ static const value_string dereg_reply_response_code[] = { { 0x44, "Duplicate Member in Request"}, { 0x46, "Duplicate Group in Request (for remove all members/groups requests)"}, { 0x51, "Invalid LB uid Size (size == 0 or > max)"}, - { 0x61, "Member is deregistering itself, but LB hasn't yet contacted the GWM. This deregistration will not be processed."}, + { 0x61, "Member is deregistering itself, but LB hasn't yet contacted the GWM." + " This deregistration will not be processed."}, { 0, NULL }, }; @@ -309,25 +312,20 @@ static const value_string set_mem_state_reply_response_code[] = { }; -static proto_item *memdatacomp = NULL; -static proto_tree *memdatacomp_tree = NULL; - - - #define SASP_GLOBAL_PORT 3860 #define SASP_MIN_PACKET_LEN 13 -#define SASP_DEREG_REQ_REASON_LEARNED 0x01 -#define SASP_DEREG_REQ_NOREASON_FLAG 0x00 -#define SASP_HDR_TYPE 0x2010 -#define SASP_WED_CONTACT_SUCCESS_FLAG 0x01 -#define SASP_WED_QUIESCE_FLAG 0x02 -#define SASP_WED_REG_FLAG 0x04 -#define SASP_WED_CONF_FLAG 0x08 -#define SASP_PUSH_FLAG 0x01 -#define SASP_TRUST_FLAG 0x02 -#define SASP_NOCHANGE_FLAG 0x04 -#define SASP_QUIESCE_FLAG 0x01 +#define SASP_DEREG_REQ_REASON_LEARNED 0x01 +#define SASP_DEREG_REQ_NOREASON_FLAG 0x00 +#define SASP_HDR_TYPE 0x2010 +#define SASP_WED_CONTACT_SUCCESS_FLAG 0x01 +#define SASP_WED_QUIESCE_FLAG 0x02 +#define SASP_WED_REG_FLAG 0x04 +#define SASP_WED_CONF_FLAG 0x08 +#define SASP_PUSH_FLAG 0x01 +#define SASP_TRUST_FLAG 0x02 +#define SASP_NOCHANGE_FLAG 0x04 +#define SASP_QUIESCE_FLAG 0x01 @@ -379,12 +377,12 @@ dissect_sasp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) col_set_str(pinfo->cinfo, COL_PROTOCOL, "SASP"); col_clear(pinfo->cinfo, COL_INFO); - ti = proto_tree_add_item(tree,proto_sasp,tvb,offset,-1,ENC_NA); - sasp_tree = proto_item_add_subtree(ti,ett_sasp_header); + ti = proto_tree_add_item(tree, proto_sasp, tvb, offset, -1, ENC_NA); + sasp_tree = proto_item_add_subtree(ti, ett_sasp_header); hdr_type = tvb_get_ntohs(tvb, offset); - hti = proto_tree_add_uint_format(sasp_tree,hf_sasp_type,tvb,offset,2,hdr_type, - "Type: %s", (hdr_type==SASP_HDR_TYPE) ? "SASP" : "[Invalid]"); + hti = proto_tree_add_uint_format(sasp_tree, hf_sasp_type, tvb, offset, 2, hdr_type, + "Type: %s", (hdr_type == SASP_HDR_TYPE) ? "SASP" : "[Invalid]"); if (hdr_type != SASP_HDR_TYPE) { expert_add_info_format(pinfo, hti, PI_MALFORMED, PI_ERROR, "Invalid SASP Header Type [0x%04x]", hdr_type); @@ -392,32 +390,32 @@ dissect_sasp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) col_set_str(pinfo->cinfo, COL_INFO, "[Malformed: Invalid SASP Header Type]"); return; } - offset+=2; + offset += 2; /*length*/ - proto_tree_add_item(sasp_tree,hf_sasp_length,tvb,offset,2,ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(sasp_tree, hf_sasp_length, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /*Header Version */ - proto_tree_add_item(sasp_tree,hf_sasp_vrsn,tvb,offset,1,ENC_BIG_ENDIAN); - offset++; + proto_tree_add_item(sasp_tree, hf_sasp_vrsn, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; /*Message*/ - msg_tree = proto_item_add_subtree(ti,ett_sasp_msg); + msg_tree = proto_item_add_subtree(ti, ett_sasp_msg); /*Message Len*/ - proto_tree_add_item(msg_tree,hf_msg_len,tvb,offset,4,ENC_BIG_ENDIAN); - offset+=4; + proto_tree_add_item(msg_tree, hf_msg_len, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; /*Message Id*/ - proto_tree_add_item(msg_tree,hf_msg_id,tvb,offset,4,ENC_BIG_ENDIAN); - offset+=4; + proto_tree_add_item(msg_tree, hf_msg_id, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; /*Message Type*/ msg_type = tvb_get_ntohs(tvb, offset); - mti = proto_tree_add_item(msg_tree,hf_msg_type,tvb,offset,2,ENC_BIG_ENDIAN); - pay_load = proto_item_add_subtree(ti,ett_sasp_payload); - offset+=2; + mti = proto_tree_add_item(msg_tree, hf_msg_type, tvb, offset, 2, ENC_BIG_ENDIAN); + pay_load = proto_item_add_subtree(ti, ett_sasp_payload); + offset += 2; @@ -426,83 +424,84 @@ dissect_sasp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) case 0x1010: /* Registration Request */ col_set_str(pinfo->cinfo, COL_INFO, "Registration Request"); - dissect_reg_req(tvb,pay_load,offset); + dissect_reg_req(tvb, pay_load, offset); return; case 0x1015: /* Registration Reply */ col_set_str(pinfo->cinfo, COL_INFO, "Registration Reply"); - dissect_reg_rep(tvb,pay_load,offset); + dissect_reg_rep(tvb, pay_load, offset); return; case 0x1020: /* Deregistration Request */ col_set_str(pinfo->cinfo, COL_INFO, "Deregistration Request"); - dissect_dereg_req(tvb,pay_load,offset); + dissect_dereg_req(tvb, pay_load, offset); return; case 0x1025: /* Deregistration Reply */ col_set_str(pinfo->cinfo, COL_INFO, "Deregistration Reply"); - dissect_dereg_rep(tvb,pay_load,offset); + dissect_dereg_rep(tvb, pay_load, offset); return; case 0x1030: /* Get Weights Request */ col_set_str(pinfo->cinfo, COL_INFO, "Get Weights Request"); - dissect_wt_req(tvb,pay_load,offset); + dissect_wt_req(tvb, pay_load, offset); return; case 0x1035: /* Get Weights Response */ col_set_str(pinfo->cinfo, COL_INFO, "Get Weights Response"); - dissect_wt_rep(tvb,pay_load,offset); + dissect_wt_rep(tvb, pay_load, offset); return; case 0x1040: /* Send Weights Request */ col_set_str(pinfo->cinfo, COL_INFO, "Send Weights Request"); - dissect_sendwt(tvb,pay_load,offset); + dissect_sendwt(tvb, pay_load, offset); return; case 0x1050: /* Set LB State Request */ col_set_str(pinfo->cinfo, COL_INFO, "Set LB State Request"); - dissect_setlbstate_req(tvb,pay_load,offset); + dissect_setlbstate_req(tvb, pay_load, offset); return; case 0x1055: /* Set LB state Reply */ col_set_str(pinfo->cinfo, COL_INFO, "Set LB State Reply"); - dissect_setlbstate_rep(tvb,pay_load,offset); + dissect_setlbstate_rep(tvb, pay_load, offset); return; case 0x1060: /* Set Member State Request*/ col_set_str(pinfo->cinfo, COL_INFO, "Set Member State Request"); - dissect_setmemstate_req(tvb,pay_load,offset); + dissect_setmemstate_req(tvb, pay_load, offset); return; case 0x1065: /* Set Member State Reply */ col_set_str(pinfo->cinfo, COL_INFO, "Set Member State Reply"); - dissect_setmemstate_rep(tvb,pay_load,offset); + dissect_setmemstate_rep(tvb, pay_load, offset); return; default: /* Unknown SASP Message Type */ - col_add_fstr(pinfo->cinfo, COL_INFO, "[Malformed: Unknown Message Type [0x%04x]", msg_type); + col_add_fstr(pinfo->cinfo, COL_INFO, + "[Malformed: Unknown Message Type [0x%04x]", msg_type); expert_add_info_format(pinfo, mti, PI_MALFORMED, PI_WARN, "Unknown SASP Message Type: 0x%4x", msg_type); return; @@ -511,74 +510,73 @@ dissect_sasp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) } -static void dissect_reg_req(tvbuff_t *tvb,proto_tree *pay_load,guint32 offset) +static void dissect_reg_req(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset) { - guint16 gmd_cnt,i; - proto_item *reg_tree; proto_tree *reg_req_data; + guint16 gmd_cnt, i; + - reg_tree = proto_tree_add_text(pay_load,tvb,offset,-1,"Reg Request"); + reg_tree = proto_tree_add_text(pay_load, tvb, offset, -1, "Reg Request"); reg_req_data = proto_item_add_subtree(reg_tree, ett_sasp_reg_req_sz); /* Reg Req Size */ proto_tree_add_item(reg_req_data, hf_sasp_reg_req_sz, tvb, offset, 2, ENC_BIG_ENDIAN); - offset+=2; + offset += 2; /* Reg Req LB Flag */ - proto_tree_add_item(reg_req_data,hf_reg_req_lbflag,tvb,offset,1,ENC_BIG_ENDIAN); - offset+=1; + proto_tree_add_item(reg_req_data, hf_reg_req_lbflag, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; - gmd_cnt=tvb_get_ntohs(tvb, offset); + gmd_cnt = tvb_get_ntohs(tvb, offset); /* Group MEM Data Count */ - proto_tree_add_item(reg_req_data,hf_sasp_gmd_cnt,tvb,offset,2,ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(reg_req_data, hf_sasp_gmd_cnt, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; - for( i=0; i<gmd_cnt; i++) + for ( i=0; i<gmd_cnt; i++) { - offset = dissect_grp_memdatacomp(tvb,reg_req_data,offset); + offset = dissect_grp_memdatacomp(tvb, reg_req_data, offset); } } -static void dissect_reg_rep(tvbuff_t *tvb, proto_tree *pay_load,guint32 offset) +static void dissect_reg_rep(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset) { proto_item *reg_rep; proto_tree *reg_rep_tree; - reg_rep = proto_tree_add_text(pay_load,tvb,offset,-1 ,"Reg Reply"); - reg_rep_tree = proto_item_add_subtree(reg_rep,ett_sasp_reg_rep); + reg_rep = proto_tree_add_text(pay_load, tvb, offset, -1 , "Reg Reply"); + reg_rep_tree = proto_item_add_subtree(reg_rep, ett_sasp_reg_rep); /* Size */ - proto_tree_add_item(reg_rep_tree, hf_sasp_reg_rep_sz, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(reg_rep_tree, hf_sasp_reg_rep_sz, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /* Response Code */ - proto_tree_add_item(reg_rep_tree, hf_sasp_reg_rep_rcode,tvb,offset,1,ENC_BIG_ENDIAN); - offset+=1; + proto_tree_add_item(reg_rep_tree, hf_sasp_reg_rep_rcode, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; } -static void dissect_dereg_req(tvbuff_t *tvb,proto_tree *pay_load,guint32 offset) +static void dissect_dereg_req(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset) { - guint16 gmd_cnt,i; - proto_item *dereg_tree; - proto_tree *dereg_req_data; - /*proto_item *dereg_req_reason_flag;*/ /*proto_tree *dereg_req_reason_flag_tree;*/ + guint16 gmd_cnt, i; + proto_item *dereg_tree; + proto_tree *dereg_req_data; - guint8 reason_flag; + guint8 reason_flag; gboolean first_flag = TRUE; @@ -586,209 +584,215 @@ static void dissect_dereg_req(tvbuff_t *tvb,proto_tree *pay_load,guint32 offset) const gchar *fstr[] = {"No Reason", "Learned & Purposeful" }; - dereg_tree = proto_tree_add_text(pay_load,tvb,offset,-1 ,"DeReg Request"); - dereg_req_data = proto_item_add_subtree(dereg_tree,ett_sasp_dereg_req_sz); + dereg_tree = proto_tree_add_text(pay_load, tvb, offset, -1 , "DeReg Request"); + dereg_req_data = proto_item_add_subtree(dereg_tree, ett_sasp_dereg_req_sz); /* Size */ proto_tree_add_item(dereg_req_data, hf_sasp_dereg_req_sz, tvb, offset, 2, ENC_BIG_ENDIAN); - offset+=2; + offset += 2; /* LB Flag */ - proto_tree_add_item(dereg_req_data,hf_dereg_req_lbflag,tvb,offset,1,ENC_BIG_ENDIAN); - offset+=1; + proto_tree_add_item(dereg_req_data, hf_dereg_req_lbflag, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; /* Reason */ ep_strbuf_truncate(reasonflags_strbuf, 0); reason_flag = tvb_get_guint8(tvb, offset); - if((reason_flag & SASP_DEREG_REQ_REASON_LEARNED) == 0) + if ((reason_flag & SASP_DEREG_REQ_REASON_LEARNED) == 0) { - ep_strbuf_append_printf(reasonflags_strbuf, "%s%s",first_flag ? "" : ", ",fstr[0]); - first_flag=FALSE; + ep_strbuf_append_printf(reasonflags_strbuf, "%s%s", first_flag ? "" : ", ", fstr[0]); + first_flag = FALSE; } else { - ep_strbuf_append_printf(reasonflags_strbuf, "%s%s",first_flag ? "" : ", ",fstr[1]); - first_flag=FALSE; + ep_strbuf_append_printf(reasonflags_strbuf, "%s%s", first_flag ? "" : ", ", fstr[1]); + first_flag = FALSE; } - /*dereg_req_reason_flag =*/ proto_tree_add_uint_format(dereg_req_data,hf_dereg_req_reason_flag,tvb, - offset,1,reason_flag,"Reason: 0x%02x (%s)",reason_flag, - reasonflags_strbuf->str); + /*dereg_req_reason_flag =*/ proto_tree_add_uint_format(dereg_req_data, hf_dereg_req_reason_flag, tvb, + offset, 1, reason_flag, + "Reason: 0x%02x (%s)", reason_flag, + reasonflags_strbuf->str); #if 0 /* XXX: ToDo?? Flags to be displayed under a subtree ? */ - dereg_req_reason_flag_tree = proto_item_add_subtree(dereg_req_reason_flag,ett_dereg_req_reason_flag); + dereg_req_reason_flag_tree = proto_item_add_subtree(dereg_req_reason_flag, ett_dereg_req_reason_flag); #endif - offset+=1; + offset += 1; gmd_cnt = tvb_get_ntohs(tvb, offset); /* Group Mem Data Count */ - proto_tree_add_item(dereg_req_data,hf_sasp_gmd_cnt,tvb,offset,2,ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(dereg_req_data, hf_sasp_gmd_cnt, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /*Group Mem Data */ - for( i=0; i<gmd_cnt; i++) + for ( i=0; i<gmd_cnt; i++) { - offset = dissect_grp_memdatacomp(tvb,dereg_req_data,offset); + offset = dissect_grp_memdatacomp(tvb, dereg_req_data, offset); } } -static void dissect_dereg_rep(tvbuff_t *tvb, proto_tree *pay_load,guint32 offset) +static void dissect_dereg_rep(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset) { proto_item *dereg_rep; proto_tree *dereg_rep_tree; - dereg_rep = proto_tree_add_text(pay_load,tvb,offset,-1 ,"Dereg Reply"); - dereg_rep_tree = proto_item_add_subtree(dereg_rep,ett_sasp_dereg_rep); + dereg_rep = proto_tree_add_text(pay_load, tvb, offset, -1 , "Dereg Reply"); + dereg_rep_tree = proto_item_add_subtree(dereg_rep, ett_sasp_dereg_rep); /* Size */ - proto_tree_add_item(dereg_rep_tree, hf_sasp_dereg_rep_sz, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(dereg_rep_tree, hf_sasp_dereg_rep_sz, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /* Return Code */ - proto_tree_add_item(dereg_rep_tree, hf_sasp_dereg_rep_rcode,tvb,offset,1,ENC_BIG_ENDIAN); - offset+=1; + proto_tree_add_item(dereg_rep_tree, hf_sasp_dereg_rep_rcode, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; } -static void dissect_sendwt(tvbuff_t *tvb,proto_tree *pay_load,guint32 offset) +static void dissect_sendwt(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset) { - guint16 gwed_cnt,i; - proto_item *sendwt; proto_tree *sendwt_tree; - sendwt = proto_tree_add_text(pay_load,tvb,offset,-1 ,"Send Weight"); - sendwt_tree = proto_item_add_subtree(sendwt,ett_sasp_sendwt); + guint16 gwed_cnt, i; + + sendwt = proto_tree_add_text(pay_load, tvb, offset, -1 , "Send Weight"); + sendwt_tree = proto_item_add_subtree(sendwt, ett_sasp_sendwt); /* Size */ - proto_tree_add_item(sendwt_tree, hf_sasp_sendwt_sz, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(sendwt_tree, hf_sasp_sendwt_sz, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; - gwed_cnt=tvb_get_ntohs(tvb, offset); + gwed_cnt = tvb_get_ntohs(tvb, offset); /* Group Wt Entry Data Count */ - proto_tree_add_item(sendwt_tree, hf_sasp_sendwt_gwedcnt,tvb,offset,2,ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(sendwt_tree, hf_sasp_sendwt_gwedcnt, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; - for( i=0; i<gwed_cnt; i++) + for (i=0; i<gwed_cnt; i++) { - offset =dissect_grp_wt_entry_datacomp(tvb,sendwt_tree,offset); + offset = dissect_grp_wt_entry_datacomp(tvb, sendwt_tree, offset); } } -static void dissect_setmemstate_req(tvbuff_t *tvb,proto_tree *pay_load,guint32 offset) +static void dissect_setmemstate_req(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset) { - guint16 gmsd_cnt, i; - proto_item *setmemstate; proto_tree *setmemstate_req_data; - setmemstate = proto_tree_add_text(pay_load,tvb,offset,-1 ,"Set Mem State Request"); - setmemstate_req_data = proto_item_add_subtree(setmemstate,ett_sasp_setmemstate_req); + guint16 gmsd_cnt, i; + + setmemstate = proto_tree_add_text(pay_load, tvb, offset, -1 , "Set Mem State Request"); + setmemstate_req_data = proto_item_add_subtree(setmemstate, ett_sasp_setmemstate_req); /* Size */ proto_tree_add_item(setmemstate_req_data, hf_sasp_setmemstate_req_sz, tvb, offset, 2, ENC_BIG_ENDIAN); - offset+=2; + offset += 2; /*LB Flag*/ - proto_tree_add_item(setmemstate_req_data,hf_setmemstate_req_lbflag,tvb,offset,1,ENC_BIG_ENDIAN); - offset+=1; + proto_tree_add_item(setmemstate_req_data, hf_setmemstate_req_lbflag, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; /*Group Data Count*/ - gmsd_cnt=tvb_get_ntohs(tvb, offset); - proto_tree_add_item(setmemstate_req_data,hf_sasp_setmemstate_req_gmsd_cnt,tvb,offset,2,ENC_BIG_ENDIAN); - offset+=2; + gmsd_cnt = tvb_get_ntohs(tvb, offset); + proto_tree_add_item(setmemstate_req_data, hf_sasp_setmemstate_req_gmsd_cnt, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; - for( i=0; i<gmsd_cnt; i++) + for ( i=0; i<gmsd_cnt; i++) { - offset =dissect_grp_memstatedatacomp(tvb,setmemstate_req_data,offset); + offset = dissect_grp_memstatedatacomp(tvb, setmemstate_req_data, offset); } } -static void dissect_setmemstate_rep(tvbuff_t *tvb,proto_tree *pay_load,guint32 offset) +static void dissect_setmemstate_rep(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset) { proto_item *setmemstate_rep; proto_tree *setmemstate_rep_tree; - setmemstate_rep = proto_tree_add_text(pay_load,tvb,offset,-1 ,"Set Mem State Reply"); - setmemstate_rep_tree = proto_item_add_subtree(setmemstate_rep,ett_sasp_setmemstate_rep); + setmemstate_rep = proto_tree_add_text(pay_load, tvb, offset, -1 , "Set Mem State Reply"); + setmemstate_rep_tree = proto_item_add_subtree(setmemstate_rep, ett_sasp_setmemstate_rep); /* Size */ - proto_tree_add_item(setmemstate_rep_tree, hf_sasp_setmemstate_rep_sz, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(setmemstate_rep_tree, hf_sasp_setmemstate_rep_sz, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /* Response Code */ - proto_tree_add_item(setmemstate_rep_tree, hf_sasp_setmemstate_rep_rcode,tvb,offset,1,ENC_BIG_ENDIAN); - offset+=1; + proto_tree_add_item(setmemstate_rep_tree, hf_sasp_setmemstate_rep_rcode, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; } -static guint32 dissect_memdatacomp(tvbuff_t *tvb, proto_tree *pay_load,guint32 offset) +static guint32 dissect_memdatacomp(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset, proto_tree **mdct_p) { + proto_item *memdatacomp; + proto_tree *memdatacomp_tree; - guint8 lab_len; - struct e_in6_addr ipv6_addr; - const gchar *ip_str; + guint8 lab_len; + struct e_in6_addr ipv6_address; + const gchar *ip_str; - tvb_get_ipv6(tvb,offset+7,&ipv6_addr); - ip_str = ip6_to_str(&ipv6_addr); + tvb_get_ipv6(tvb, offset+7, &ipv6_address); + ip_str = ip6_to_str(&ipv6_address); lab_len = tvb_get_guint8(tvb, offset+23); - memdatacomp = proto_tree_add_ipv6_format(pay_load,hf_sasp_memdatacomp_ip, - tvb,offset,24+lab_len,(guint8*)&ipv6_addr, - "Member Data Comp (%s)",ip_str); + memdatacomp = proto_tree_add_ipv6_format(pay_load, hf_sasp_memdatacomp_ip, + tvb, offset, 24+lab_len, (guint8*)&ipv6_address, + "Member Data Comp (%s)", ip_str); - memdatacomp_tree = proto_item_add_subtree(memdatacomp,ett_sasp_memdatacomp); + memdatacomp_tree = proto_item_add_subtree(memdatacomp, ett_sasp_memdatacomp); /* Message Type */ - proto_tree_add_item(memdatacomp_tree, hf_sasp_memdatacomp_type, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(memdatacomp_tree, hf_sasp_memdatacomp_type, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /* Size */ - proto_tree_add_item(memdatacomp_tree, hf_sasp_memdatacomp_sz, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(memdatacomp_tree, hf_sasp_memdatacomp_sz, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /* Protocol */ - proto_tree_add_item(memdatacomp_tree, hf_sasp_memdatacomp_protocol,tvb,offset,1,ENC_BIG_ENDIAN); - offset+=1; + proto_tree_add_item(memdatacomp_tree, hf_sasp_memdatacomp_protocol, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; /* Port */ - proto_tree_add_item(memdatacomp_tree, hf_sasp_memdatacomp_port, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(memdatacomp_tree, hf_sasp_memdatacomp_port, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /*Ip*/ - proto_tree_add_item(memdatacomp_tree, hf_sasp_memdatacomp_ip, tvb, offset,16, ENC_NA); - offset+=16; + proto_tree_add_item(memdatacomp_tree, hf_sasp_memdatacomp_ip, tvb, offset, 16, ENC_NA); + offset += 16; /*Label Len*/ - proto_tree_add_item(memdatacomp_tree, hf_sasp_memdatacomp_lab_len,tvb,offset,1,ENC_BIG_ENDIAN); - offset+=1; + proto_tree_add_item(memdatacomp_tree, hf_sasp_memdatacomp_lab_len, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; /*Label*/ - proto_tree_add_item(memdatacomp_tree, hf_sasp_memdatacomp_label,tvb,offset,lab_len,ENC_ASCII|ENC_NA); - offset+=lab_len; + proto_tree_add_item(memdatacomp_tree, hf_sasp_memdatacomp_label, tvb, offset, lab_len, ENC_ASCII|ENC_NA); + offset += lab_len; + + if (mdct_p != NULL) + *mdct_p = memdatacomp_tree; return offset; @@ -796,84 +800,89 @@ static guint32 dissect_memdatacomp(tvbuff_t *tvb, proto_tree *pay_load,guint32 o -static guint32 dissect_grpdatacomp(tvbuff_t *tvb, proto_tree *pay_load,guint32 offset) +static guint32 dissect_grpdatacomp(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset) { + proto_item *grpdatacomp; + proto_tree *grpdatacomp_tree; + guint8 LB_uid_len; guint8 grp_name_len; - proto_item *grpdatacomp; - proto_tree *grpdatacomp_tree; - - grpdatacomp = proto_tree_add_text(pay_load,tvb,offset,-1 ,"Group Data Component"); - grpdatacomp_tree = proto_item_add_subtree(grpdatacomp,ett_sasp_grpdatacomp); + grpdatacomp = proto_tree_add_text(pay_load, tvb, offset, -1 , "Group Data Component"); + grpdatacomp_tree = proto_item_add_subtree(grpdatacomp, ett_sasp_grpdatacomp); /*Type*/ - proto_tree_add_item(grpdatacomp_tree, hf_sasp_grpdatacomp, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(grpdatacomp_tree, hf_sasp_grpdatacomp, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /*Size*/ - proto_tree_add_item(grpdatacomp_tree, hf_sasp_grpdatacomp_sz, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(grpdatacomp_tree, hf_sasp_grpdatacomp_sz, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; LB_uid_len = tvb_get_guint8(tvb, offset); /* LB UID Len*/ - proto_tree_add_item(grpdatacomp_tree, hf_sasp_grpdatacomp_LB_uid_len, tvb, offset,1, ENC_BIG_ENDIAN); - offset+=1; + proto_tree_add_item(grpdatacomp_tree, hf_sasp_grpdatacomp_LB_uid_len, + tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; - proto_tree_add_item(grpdatacomp_tree, hf_sasp_grpdatacomp_LB_uid, tvb,offset,LB_uid_len,ENC_ASCII|ENC_NA); - offset+=(guint8)LB_uid_len; + proto_tree_add_item(grpdatacomp_tree, hf_sasp_grpdatacomp_LB_uid, + tvb, offset, LB_uid_len, ENC_ASCII|ENC_NA); + offset += (guint8)LB_uid_len; grp_name_len = tvb_get_guint8(tvb, offset); /*Group Name Len */ - proto_tree_add_item(grpdatacomp_tree, hf_sasp_grpdatacomp_grp_name_len,tvb,offset,1,ENC_BIG_ENDIAN); - offset+=1; + proto_tree_add_item(grpdatacomp_tree, hf_sasp_grpdatacomp_grp_name_len, + tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; /*Group Name*/ - proto_tree_add_item(grpdatacomp_tree, hf_sasp_grpdatacomp_grp_name,tvb,offset,grp_name_len,ENC_ASCII|ENC_NA); - offset+=grp_name_len; + proto_tree_add_item(grpdatacomp_tree, hf_sasp_grpdatacomp_grp_name, + tvb, offset, grp_name_len, ENC_ASCII|ENC_NA); + offset += grp_name_len; return offset; } -static guint32 dissect_grp_memdatacomp(tvbuff_t *tvb,proto_tree *pay_load,guint32 offset) +static guint32 dissect_grp_memdatacomp(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset) { - guint16 mem_cnt; - guint16 i; proto_item *grp_memdatacomp; proto_tree *grp_memdatacomp_tree; - grp_memdatacomp = proto_tree_add_text(pay_load,tvb,offset,-1 ,"Group Of Member Data"); - grp_memdatacomp_tree = proto_item_add_subtree(grp_memdatacomp,ett_sasp_grp_memdatacomp); + guint16 mem_cnt; + guint16 i; + + grp_memdatacomp = proto_tree_add_text(pay_load, tvb, offset, -1 , "Group Of Member Data"); + grp_memdatacomp_tree = proto_item_add_subtree(grp_memdatacomp, ett_sasp_grp_memdatacomp); /* Group MEM Data */ - proto_tree_add_item(grp_memdatacomp_tree, hf_sasp_grp_memdatacomp, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(grp_memdatacomp_tree, hf_sasp_grp_memdatacomp, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /* Group MEM Data Size*/ - proto_tree_add_item(grp_memdatacomp_tree, hf_sasp_grp_memdatacomp_sz, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(grp_memdatacomp_tree, hf_sasp_grp_memdatacomp_sz, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; - mem_cnt=tvb_get_ntohs(tvb, offset); + mem_cnt = tvb_get_ntohs(tvb, offset); /* Group MEM Data Count*/ - proto_tree_add_item(grp_memdatacomp_tree, hf_sasp_grp_memdatacomp_cnt,tvb,offset,2,ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(grp_memdatacomp_tree, hf_sasp_grp_memdatacomp_cnt, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; - offset = dissect_grpdatacomp(tvb,grp_memdatacomp_tree, offset); + offset = dissect_grpdatacomp(tvb, grp_memdatacomp_tree, offset); /* array of memdata */ - for( i=0; i< mem_cnt; i++) + for ( i=0; i<mem_cnt; i++) { - offset=dissect_memdatacomp(tvb,grp_memdatacomp_tree, offset); + offset = dissect_memdatacomp(tvb, grp_memdatacomp_tree, offset, NULL); } return offset; @@ -882,80 +891,80 @@ static guint32 dissect_grp_memdatacomp(tvbuff_t *tvb,proto_tree *pay_load,guint3 -static void dissect_wt_req(tvbuff_t *tvb,proto_tree *pay_load,guint32 offset) +static void dissect_wt_req(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset) { proto_item *get_wt_data; proto_tree *get_wt_tree; - guint16 gd_cnt,i; + guint16 gd_cnt, i; - get_wt_data = proto_tree_add_text(pay_load,tvb,offset,-1 ,"Get Wt Req"); - get_wt_tree = proto_item_add_subtree(get_wt_data,ett_sasp_getwt); + get_wt_data = proto_tree_add_text(pay_load, tvb, offset, -1 , "Get Wt Req"); + get_wt_tree = proto_item_add_subtree(get_wt_data, ett_sasp_getwt); /* Size */ proto_tree_add_item(get_wt_tree, hf_sasp_wt_req_sz, tvb, offset, 2, ENC_BIG_ENDIAN); - offset+=2; + offset += 2; - gd_cnt=tvb_get_ntohs(tvb, offset); + gd_cnt = tvb_get_ntohs(tvb, offset); /* Group Data Count */ - proto_tree_add_item(get_wt_tree,hf_sasp_wt_req_gd_cnt,tvb,offset,2,ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(get_wt_tree, hf_sasp_wt_req_gd_cnt, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; - for( i=0; i<gd_cnt; i++) + for (i=0; i<gd_cnt; i++) { - offset = dissect_grpdatacomp(tvb,get_wt_tree,offset); + offset = dissect_grpdatacomp(tvb, get_wt_tree, offset); } } -static void dissect_wt_rep(tvbuff_t *tvb,proto_tree *pay_load,guint32 offset) +static void dissect_wt_rep(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset) { - guint16 gwed_cnt,i; - proto_item *wt_rep; proto_tree *wt_rep_tree; - wt_rep = proto_tree_add_text(pay_load,tvb,offset,-1 ,"Get Weights Reply"); - wt_rep_tree = proto_item_add_subtree(wt_rep,ett_sasp_wt_rep); + guint16 gwed_cnt, i; + + wt_rep = proto_tree_add_text(pay_load, tvb, offset, -1 , "Get Weights Reply"); + wt_rep_tree = proto_item_add_subtree(wt_rep, ett_sasp_wt_rep); /* Size */ - proto_tree_add_item(wt_rep_tree, hf_sasp_wt_rep_sz, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(wt_rep_tree, hf_sasp_wt_rep_sz, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /* Response Code */ - proto_tree_add_item(wt_rep_tree, hf_sasp_wt_rep_rcode,tvb,offset,1,ENC_BIG_ENDIAN); - offset+=1; + proto_tree_add_item(wt_rep_tree, hf_sasp_wt_rep_rcode, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; /* Interval */ - proto_tree_add_item(wt_rep_tree, hf_sasp_wt_rep_interval,tvb,offset,2,ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(wt_rep_tree, hf_sasp_wt_rep_interval, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; - gwed_cnt=tvb_get_ntohs(tvb, offset); + gwed_cnt = tvb_get_ntohs(tvb, offset); /* Count of Group of Wt Entry Data */ - proto_tree_add_item(wt_rep_tree,hf_sasp_wt_rep_gwed_cnt,tvb,offset,2,ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(wt_rep_tree, hf_sasp_wt_rep_gwed_cnt, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; - for( i=0; i<gwed_cnt; i++) + for (i=0; i<gwed_cnt; i++) { - offset =dissect_grp_wt_entry_datacomp(tvb,wt_rep_tree,offset); + offset = dissect_grp_wt_entry_datacomp(tvb, wt_rep_tree, offset); } } -static void dissect_setlbstate_req(tvbuff_t *tvb,proto_tree *pay_load,guint32 offset) +static void dissect_setlbstate_req(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset) { - guint8 LB_uid_len; + guint8 LB_uid_len; static const int *lbflags[] = { &hf_sasp_pushflag, @@ -968,96 +977,105 @@ static void dissect_setlbstate_req(tvbuff_t *tvb,proto_tree *pay_load,guint32 of proto_item *setlbstate_req; proto_tree *setlbstate_req_tree; - setlbstate_req = proto_tree_add_text(pay_load,tvb,offset,-1 ,"Set LB State Req"); - setlbstate_req_tree = proto_item_add_subtree(setlbstate_req,ett_sasp_setlbstate_req); + setlbstate_req = proto_tree_add_text(pay_load, tvb, offset, -1 , "Set LB State Req"); + setlbstate_req_tree = proto_item_add_subtree(setlbstate_req, ett_sasp_setlbstate_req); /* Size*/ - proto_tree_add_item(setlbstate_req_tree, hf_sasp_setlbstate_req_sz, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(setlbstate_req_tree, hf_sasp_setlbstate_req_sz, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; LB_uid_len = tvb_get_guint8(tvb, offset); /* LB UID Len */ - proto_tree_add_item(setlbstate_req_tree, hf_sasp_setlbstate_req_LB_uid_len, tvb, offset,1, ENC_BIG_ENDIAN); - offset+=1; + proto_tree_add_item(setlbstate_req_tree, hf_sasp_setlbstate_req_LB_uid_len, + tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; /*LB UID*/ - proto_tree_add_item(setlbstate_req_tree, hf_sasp_setlbstate_req_LB_uid, tvb,offset,LB_uid_len,ENC_ASCII|ENC_NA); - offset+=(guint8)LB_uid_len; + proto_tree_add_item(setlbstate_req_tree, hf_sasp_setlbstate_req_LB_uid, + tvb, offset, LB_uid_len, ENC_ASCII|ENC_NA); + offset += (guint8)LB_uid_len; /*LB Health*/ - proto_tree_add_item(setlbstate_req_tree, hf_sasp_setlbstate_req_LB_health, tvb, offset,1, ENC_BIG_ENDIAN); + proto_tree_add_item(setlbstate_req_tree, hf_sasp_setlbstate_req_LB_health, + tvb, offset, 1, ENC_BIG_ENDIAN); offset += 1; - proto_tree_add_bitmask_text(setlbstate_req_tree,tvb,offset, 1, "LB Flags:", NULL, + proto_tree_add_bitmask_text(setlbstate_req_tree, tvb, offset, 1, "LB Flags:", NULL, ett_setlbstate_req_lbflag, lbflags, ENC_BIG_ENDIAN, 0); - offset+=1; + offset += 1; } -static void dissect_setlbstate_rep(tvbuff_t *tvb,proto_tree *pay_load,guint32 offset) +static void dissect_setlbstate_rep(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset) { proto_item *setlbstate_rep; proto_tree *setlbstate_rep_tree; - setlbstate_rep = proto_tree_add_text(pay_load,tvb,offset,-1 ,"Set LB State Rep"); - setlbstate_rep_tree = proto_item_add_subtree(setlbstate_rep,ett_sasp_setlbstate_rep); + setlbstate_rep = proto_tree_add_text(pay_load, tvb, offset, -1 , "Set LB State Rep"); + setlbstate_rep_tree = proto_item_add_subtree(setlbstate_rep, ett_sasp_setlbstate_rep); /* Size */ - proto_tree_add_item(setlbstate_rep_tree, hf_sasp_setlbstate_rep_sz, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(setlbstate_rep_tree, hf_sasp_setlbstate_rep_sz, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /* Response Code */ - proto_tree_add_item(setlbstate_rep_tree, hf_sasp_setlbstate_rep_rcode,tvb,offset,1,ENC_BIG_ENDIAN); - offset+=1; + proto_tree_add_item(setlbstate_rep_tree, hf_sasp_setlbstate_rep_rcode, + tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; } -static guint32 dissect_grp_memstatedatacomp(tvbuff_t *tvb,proto_tree *pay_load,guint32 offset) +static guint32 dissect_grp_memstatedatacomp(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset) { - guint16 mem_cnt; - guint16 i; - proto_item *grp_memstatedatacomp; proto_tree *grp_memstatedatacomp_tree; + guint16 mem_cnt; + guint16 i; - grp_memstatedatacomp = proto_tree_add_text(pay_load,tvb,offset,-1 ,"Group Mem State Comp"); - grp_memstatedatacomp_tree = proto_item_add_subtree(grp_memstatedatacomp,ett_sasp_grp_memstatedatacomp); + grp_memstatedatacomp = proto_tree_add_text(pay_load, tvb, offset, -1 , "Group Mem State Comp"); + grp_memstatedatacomp_tree = proto_item_add_subtree(grp_memstatedatacomp, + ett_sasp_grp_memstatedatacomp); /* Type */ - proto_tree_add_item(grp_memstatedatacomp_tree, hf_sasp_grp_memstatedatacomp, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(grp_memstatedatacomp_tree, hf_sasp_grp_memstatedatacomp, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /* Size */ - proto_tree_add_item(grp_memstatedatacomp_tree, hf_sasp_grp_memstatedatacomp_sz, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(grp_memstatedatacomp_tree, hf_sasp_grp_memstatedatacomp_sz, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; - mem_cnt=tvb_get_ntohs(tvb, offset); + mem_cnt = tvb_get_ntohs(tvb, offset); /* Count */ - proto_tree_add_item(grp_memstatedatacomp_tree, hf_sasp_grp_memstatedatacomp_cnt,tvb,offset,2,ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(grp_memstatedatacomp_tree, hf_sasp_grp_memstatedatacomp_cnt, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /* Group Data TLV */ - offset = dissect_grpdatacomp(tvb,grp_memstatedatacomp_tree, offset); + offset = dissect_grpdatacomp(tvb, grp_memstatedatacomp_tree, offset); /* Array of Mem State Data */ - for( i=0; i< mem_cnt; i++) + for (i=0; i<mem_cnt; i++) { - offset=dissect_memstatedatacomp(tvb,grp_memstatedatacomp_tree, offset); + offset = dissect_memstatedatacomp(tvb, grp_memstatedatacomp_tree, offset); } return offset; @@ -1065,41 +1083,49 @@ static guint32 dissect_grp_memstatedatacomp(tvbuff_t *tvb,proto_tree *pay_load,g } -static guint32 dissect_memstatedatacomp(tvbuff_t *tvb,proto_tree *pay_load,guint32 offset) +static guint32 dissect_memstatedatacomp(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset) { proto_tree *memstatedatacomp_tree; proto_item *memstatedatacomp; - guint8 memstate_flag; + proto_tree *memdatacomp_tree; + + guint8 memstate_flag; - offset=dissect_memdatacomp(tvb,pay_load, offset); - memstatedatacomp = proto_tree_add_text(memdatacomp_tree,tvb,offset,-1 ,"Member State Data"); + offset = dissect_memdatacomp(tvb, pay_load, offset, &memdatacomp_tree); + + memstatedatacomp = proto_tree_add_text(memdatacomp_tree, tvb, offset, -1 , "Member State Data"); memstatedatacomp_tree = proto_item_add_subtree(memstatedatacomp, ett_sasp_memstatedatacomp); + /* Type */ - proto_tree_add_item(memstatedatacomp_tree, hf_sasp_memstatedatacomp_instance, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(memstatedatacomp_tree, hf_sasp_memstatedatacomp_instance, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /* Size */ - proto_tree_add_item(memstatedatacomp_tree, hf_sasp_memstatedatacomp_sz, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(memstatedatacomp_tree, hf_sasp_memstatedatacomp_sz, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /* State */ - proto_tree_add_item(memstatedatacomp_tree, hf_sasp_memstatedatacomp_state, tvb, offset,1, ENC_BIG_ENDIAN); - offset+=1; + proto_tree_add_item(memstatedatacomp_tree, hf_sasp_memstatedatacomp_state, + tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; /* Quiesce flag*/ memstate_flag = tvb_get_guint8(tvb, offset); - proto_tree_add_boolean(memstatedatacomp_tree,hf_sasp_memstatedatacomp_quiesce_flag,tvb,offset,1,memstate_flag); - offset+=1; + proto_tree_add_boolean(memstatedatacomp_tree, hf_sasp_memstatedatacomp_quiesce_flag, + tvb, offset, 1, memstate_flag); + offset += 1; return offset; } -static guint32 dissect_weight_entry_data_comp(tvbuff_t *tvb,proto_tree *pay_load,guint32 offset) +static guint32 dissect_weight_entry_data_comp(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset) { proto_tree *weight_entry_data_comp_tree; @@ -1114,71 +1140,81 @@ static guint32 dissect_weight_entry_data_comp(tvbuff_t *tvb,proto_tree *pay_load }; - offset=dissect_memdatacomp(tvb,pay_load, offset); + offset = dissect_memdatacomp(tvb, pay_load, offset, NULL); - weight_entry_data_comp = proto_tree_add_text(pay_load,tvb,offset,-1 ,"Weight Entry Data"); - weight_entry_data_comp_tree = proto_item_add_subtree(weight_entry_data_comp,ett_sasp_weight_entry_data_comp); + weight_entry_data_comp = proto_tree_add_text(pay_load, tvb, offset, -1 , "Weight Entry Data"); + weight_entry_data_comp_tree = proto_item_add_subtree(weight_entry_data_comp, + ett_sasp_weight_entry_data_comp); /* Type */ - proto_tree_add_item(weight_entry_data_comp_tree, hf_sasp_weight_entry_data_comp_type, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(weight_entry_data_comp_tree, hf_sasp_weight_entry_data_comp_type, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /* Size */ - proto_tree_add_item(weight_entry_data_comp_tree, hf_sasp_weight_entry_data_comp_sz, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(weight_entry_data_comp_tree, hf_sasp_weight_entry_data_comp_sz, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; - proto_tree_add_item(weight_entry_data_comp_tree, hf_sasp_weight_entry_data_comp_state, tvb, offset,1, ENC_BIG_ENDIAN); - offset+=1; + proto_tree_add_item(weight_entry_data_comp_tree, hf_sasp_weight_entry_data_comp_state, + tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; - proto_tree_add_bitmask_text(weight_entry_data_comp_tree,tvb,offset, 1, "Flags:", NULL, + proto_tree_add_bitmask_text(weight_entry_data_comp_tree, tvb, offset, 1, "Flags:", NULL, ett_wt_entry_data_flag, wtflags, ENC_BIG_ENDIAN, 0); - offset+=1; + offset += 1; /* Weight */ - proto_tree_add_item(weight_entry_data_comp_tree, hf_sasp_weight_entry_data_comp_weight, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(weight_entry_data_comp_tree, hf_sasp_weight_entry_data_comp_weight, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; return offset; } -static guint32 dissect_grp_wt_entry_datacomp(tvbuff_t *tvb,proto_tree *pay_load,guint32 offset) +static guint32 dissect_grp_wt_entry_datacomp(tvbuff_t *tvb, proto_tree *pay_load, guint32 offset) { - guint16 wt_entry_cnt; - guint16 i; proto_item *grp_wt_entry_datacomp; proto_tree *grp_wt_entry_datacomp_tree; - grp_wt_entry_datacomp = proto_tree_add_text(pay_load,tvb,offset,-1 ,"Group of Wt Entry Data"); - grp_wt_entry_datacomp_tree = proto_item_add_subtree(grp_wt_entry_datacomp, ett_sasp_grp_wt_entry_datacomp); + guint16 wt_entry_cnt; + guint16 i; + + grp_wt_entry_datacomp = proto_tree_add_text(pay_load, tvb, offset, -1 , "Group of Wt Entry Data"); + grp_wt_entry_datacomp_tree = proto_item_add_subtree(grp_wt_entry_datacomp, + ett_sasp_grp_wt_entry_datacomp); /* Type */ - proto_tree_add_item(grp_wt_entry_datacomp_tree, hf_sasp_grp_wt_entry_datacomp_type, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(grp_wt_entry_datacomp_tree, hf_sasp_grp_wt_entry_datacomp_type, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /* Size */ - proto_tree_add_item(grp_wt_entry_datacomp_tree, hf_sasp_grp_wt_entry_datacomp_sz, tvb, offset,2, ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(grp_wt_entry_datacomp_tree, hf_sasp_grp_wt_entry_datacomp_sz, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; - wt_entry_cnt=tvb_get_ntohs(tvb, offset); + wt_entry_cnt = tvb_get_ntohs(tvb, offset); /* Wt Entry Count*/ - proto_tree_add_item(grp_wt_entry_datacomp_tree, hf_sasp_grp_wt_entry_datacomp_cnt,tvb,offset,2,ENC_BIG_ENDIAN); - offset+=2; + proto_tree_add_item(grp_wt_entry_datacomp_tree, hf_sasp_grp_wt_entry_datacomp_cnt, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /* Group Data */ - offset = dissect_grpdatacomp(tvb,grp_wt_entry_datacomp_tree, offset); + offset = dissect_grpdatacomp(tvb, grp_wt_entry_datacomp_tree, offset); /* Member Data */ - for( i=0; i<wt_entry_cnt; i++) + for (i=0; i<wt_entry_cnt; i++) { - offset=dissect_weight_entry_data_comp(tvb,grp_wt_entry_datacomp_tree, offset); + offset = dissect_weight_entry_data_comp(tvb, grp_wt_entry_datacomp_tree, offset); } return offset; @@ -1195,351 +1231,435 @@ void proto_register_sasp(void) /*SASP Header */ { &hf_sasp_type, - { "Type", "sasp.msg.type", FT_UINT16, BASE_HEX, NULL, 0x0, - "SASP Header", HFILL } }, + { "Type", "sasp.msg.type", + FT_UINT16, BASE_HEX, NULL, 0x0, + "SASP Header", HFILL } + }, { &hf_sasp_length, - { "Length", "sasp.header.Len", FT_UINT16, BASE_DEC, NULL, 0x0, - "SASP Header Length", HFILL } }, + { "Length", "sasp.header.Len", + FT_UINT16, BASE_DEC, NULL, 0x0, + "SASP Header Length", HFILL } + }, { &hf_sasp_vrsn, - { "Version", "sasp.version", FT_UINT8, BASE_DEC, NULL, 0x0, - "SASP Version", HFILL } }, + { "Version", "sasp.version", + FT_UINT8, BASE_DEC, NULL, 0x0, + "SASP Version", HFILL } + }, { &hf_msg_len, - { "Message Len", "sasp.msg.len", FT_UINT32, BASE_DEC, NULL, 0x0, - "SASP Msg Len", HFILL } }, + { "Message Len", "sasp.msg.len", + FT_UINT32, BASE_DEC, NULL, 0x0, + "SASP Msg Len", HFILL } + }, { &hf_msg_id, - { "Message Id", "sasp.msg.id", FT_UINT32, BASE_DEC, NULL, 0x0, - "SASP Msg Id", HFILL } }, + { "Message Id", "sasp.msg.id", + FT_UINT32, BASE_DEC, NULL, 0x0, + "SASP Msg Id", HFILL } + }, /*Message Type*/ { &hf_msg_type, - { "Message Type", "sasp.msg.type", FT_UINT16, BASE_HEX,VALS(msg_table), 0x0, - "SASP Msg Type", HFILL } }, + { "Message Type", "sasp.msg.type", + FT_UINT16, BASE_HEX|BASE_EXT_STRING, &msg_table_ext, 0x0, + "SASP Msg Type", HFILL } + }, /*Reg Request*/ { &hf_sasp_reg_req_sz, - { "Reg Req-Size", "sasp.reg-req.size", FT_UINT32, BASE_DEC, NULL, 0x0, - "SASP Reg Req Size", HFILL } }, + { "Reg Req-Size", "sasp.reg-req.size", + FT_UINT32, BASE_DEC, NULL, 0x0, + "SASP Reg Req Size", HFILL } + }, { &hf_reg_req_lbflag, - { "Reg Req-LB Flag", "sasp.reg-req.lbflag", FT_BOOLEAN, BASE_NONE, NULL, 0x0, + { "Reg Req-LB Flag", "sasp.reg-req.lbflag", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, "SASP Reg Req LB Flag", HFILL } }, { &hf_sasp_gmd_cnt, - { "Grp Mem Data-Count", "sasp.grp-mem-data.count", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Grp Mem Data-Count", "sasp.grp-mem-data.count", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Grp Mem Data Count", HFILL } }, /* Reg Reply */ { &hf_sasp_reg_rep_sz, - { "Reg Reply-Size", "sasp.reg-rep.size", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Reg Reply-Size", "sasp.reg-rep.size", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Reg Reply size", HFILL } }, { &hf_sasp_reg_rep_rcode, - { "Reg Reply-Return Code", "sasp.reg-rep.retcode", FT_UINT8, BASE_HEX, VALS(reg_reply_response_code), 0x0, + { "Reg Reply-Return Code", "sasp.reg-rep.retcode", + FT_UINT8, BASE_HEX, VALS(reg_reply_response_code), 0x0, "SASP Reg Rep Return Code", HFILL } }, /* Dereg Req */ { &hf_sasp_dereg_req_sz, - { "Dereg Req-Size", "sasp.dereg-req.size", FT_UINT32, BASE_DEC, NULL, 0x0, + { "Dereg Req-Size", "sasp.dereg-req.size", + FT_UINT32, BASE_DEC, NULL, 0x0, "SASP Dereg Req Size", HFILL } }, { &hf_dereg_req_lbflag, - { "Dereg Req-LB Flag", "sasp.dereg-req.lbflag", FT_BOOLEAN, BASE_NONE, NULL, 0x0, + { "Dereg Req-LB Flag", "sasp.dereg-req.lbflag", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, "SASP Dereg Req LB Flag", HFILL } }, { &hf_dereg_req_reason_flag, - { "Reason Flags","sasp.flags.reason", FT_UINT8, BASE_HEX, NULL, 0x0, - NULL, HFILL }}, + { "Reason Flags", "sasp.flags.reason", + FT_UINT8, BASE_HEX, NULL, 0x0, + NULL, HFILL } }, { &hf_dereg_req_reason, - { "Dereg Req-Reason", "sasp.dereg-req.reason", FT_UINT8, BASE_HEX, NULL, 0x0, + { "Dereg Req-Reason", "sasp.dereg-req.reason", + FT_UINT8, BASE_HEX, NULL, 0x0, "SASP Dereg Req Reason", HFILL } }, /* Dereg Rep */ { &hf_sasp_dereg_rep_sz, - { "Dereg Rep-Size", "sasp.dereg-rep.size", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Dereg Rep-Size", "sasp.dereg-rep.size", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Dereg Rep Size", HFILL } }, { &hf_sasp_dereg_rep_rcode, - { "Dereg Rep-Return Code", "sasp.dereg-rep.retcode", FT_UINT8, BASE_HEX, VALS(dereg_reply_response_code), 0x0, + { "Dereg Rep-Return Code", "sasp.dereg-rep.retcode", + FT_UINT8, BASE_HEX, VALS(dereg_reply_response_code), 0x0, "SASP Dereg Rep Return Code", HFILL } }, /* Send weight */ { &hf_sasp_sendwt_sz, - { "Sendwt-Size", "sasp.sendwt.size", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Sendwt-Size", "sasp.sendwt.size", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Sendwt-Size", HFILL } }, { &hf_sasp_sendwt_gwedcnt, - { "Sendwt-Grp Wt EntryData Count", "sasp.sendwt-grp-wtentrydata.count", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Sendwt-Grp Wt EntryData Count", "sasp.sendwt-grp-wtentrydata.count", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Sendwt Grp Wt Entry Data Count", HFILL } }, /*Set Mem State Req*/ { &hf_sasp_setmemstate_req_sz, - { "Set Memstate Req-Size", "sasp.setmemstate-req.size", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Set Memstate Req-Size", "sasp.setmemstate-req.size", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Set Memstate Req Size", HFILL } }, { &hf_setmemstate_req_lbflag, - { "Set Memstate Req-LB Flag", "sasp.setmemstate-req.lbflag", FT_BOOLEAN, BASE_NONE, NULL, 0x0, + { "Set Memstate Req-LB Flag", "sasp.setmemstate-req.lbflag", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, "SASP Set Memstate Req LB Flag", HFILL } }, { &hf_sasp_setmemstate_req_gmsd_cnt, - { "Set Memstate Req-Gmsd Count", "sasp.group-memstate.count", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Set Memstate Req-Gmsd Count", "sasp.group-memstate.count", + FT_UINT16, BASE_DEC, NULL, 0x0, "Group Of Member State Data Count", HFILL } }, /* Set Mem State Reply */ { &hf_sasp_setmemstate_rep, - { "Set Memstate Reply", "sasp.setmemstate-rep", FT_UINT32, BASE_HEX, NULL, 0x0, + { "Set Memstate Reply", "sasp.setmemstate-rep", + FT_UINT32, BASE_HEX, NULL, 0x0, "SASP Set Memstate Reply", HFILL } }, { &hf_sasp_setmemstate_rep_sz, - { "Set Memstate Rep-Size", "sasp.setmemstate-rep.size", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Set Memstate Rep-Size", "sasp.setmemstate-rep.size", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Set Memstate Rep Size", HFILL } }, { &hf_sasp_setmemstate_rep_rcode, - { "Set Memstate Rep-Return Code", "sasp.setmemstate-rep.retcode", FT_UINT8, BASE_HEX, VALS(set_mem_state_reply_response_code), 0x0, + { "Set Memstate Rep-Return Code", "sasp.setmemstate-rep.retcode", + FT_UINT8, BASE_HEX, VALS(set_mem_state_reply_response_code), 0x0, "SASP Set Memstate Rep Return Code", HFILL } }, /*Mem Data Component*/ { &hf_sasp_memdatacomp_type, - { "Message Type", "sasp.msg.type", FT_UINT16, BASE_HEX, VALS(msg_table), 0x0, + { "Message Type", "sasp.msg.type", + FT_UINT16, BASE_HEX|BASE_EXT_STRING, &msg_table_ext, 0x0, "SASP Mem Data Comp", HFILL } }, { &hf_sasp_memdatacomp_sz, - { "Mem Data Comp-Size", "sasp.memdatacomp.size", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Mem Data Comp-Size", "sasp.memdatacomp.size", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Mem Data Comp Size", HFILL } }, { &hf_sasp_memdatacomp_protocol, - { "Mem Data Comp-Protocol", "sasp.memdatacomp.protocol", FT_UINT8, BASE_HEX, VALS(protocol_table), 0x0, + { "Mem Data Comp-Protocol", "sasp.memdatacomp.protocol", + FT_UINT8, BASE_HEX, VALS(protocol_table), 0x0, "SASP Mem Data Comp Protocol", HFILL } }, { &hf_sasp_memdatacomp_port, - { "Mem Data Comp-Port", "sasp.memdatacomp.port", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Mem Data Comp-Port", "sasp.memdatacomp.port", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Mem Data Comp Port", HFILL } }, { &hf_sasp_memdatacomp_ip, - { "Mem Data Comp-Ip", "sasp.memdatacomp.ip", FT_IPv6, BASE_NONE, NULL, 0x0, + { "Mem Data Comp-Ip", "sasp.memdatacomp.ip", + FT_IPv6, BASE_NONE, NULL, 0x0, "SASP Mem Data Comp Ip", HFILL } }, { &hf_sasp_memdatacomp_lab_len, - { "Mem Data Comp-Label Len", "sasp.memdatacomp.label.len", FT_UINT8, BASE_DEC, NULL, 0x0, + { "Mem Data Comp-Label Len", "sasp.memdatacomp.label.len", + FT_UINT8, BASE_DEC, NULL, 0x0, "SASP Mem Data Comp Label Length", HFILL } }, { &hf_sasp_memdatacomp_label, - { "Mem Data Comp-Label", "sasp.memdatacomp.label", FT_STRING, BASE_NONE, NULL, 0x0, + { "Mem Data Comp-Label", "sasp.memdatacomp.label", + FT_STRING, BASE_NONE, NULL, 0x0, "SASP Mem Data Comp Label", HFILL } }, /*Get Weight Request*/ { &hf_sasp_wt_req_sz, - { "Get Wt Req-Size", "sasp.getwt.req.size", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Get Wt Req-Size", "sasp.getwt.req.size", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Get Wt Req Size", HFILL } }, { &hf_sasp_wt_req_gd_cnt, - { "Get Wt Req-Grp Data Count", "sasp.getwt-req-grpdata.count", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Get Wt Req-Grp Data Count", "sasp.getwt-req-grpdata.count", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Get Wt Grp Data Count", HFILL } }, /*Get Weight Reply*/ { &hf_sasp_wt_rep_sz, - { "Get Wt Rep-Size", "sasp.getwt.rep.size", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Get Wt Rep-Size", "sasp.getwt.rep.size", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Get Wt Rep Size", HFILL } }, { &hf_sasp_wt_rep_rcode, - { "Get Wt Rep-Return Code", "sasp.getwt-rep.retcode", FT_UINT8, BASE_HEX, VALS(get_weights_reply_response_code), 0x0, + { "Get Wt Rep-Return Code", "sasp.getwt-rep.retcode", + FT_UINT8, BASE_HEX, VALS(get_weights_reply_response_code), 0x0, "SASP Get Wt Rep Return Code", HFILL } }, { &hf_sasp_wt_rep_interval, - { "Get Wt Rep-Interval", "sasp.getwt-rep.interval", FT_UINT8, BASE_DEC, NULL, 0x0, + { "Get Wt Rep-Interval", "sasp.getwt-rep.interval", + FT_UINT8, BASE_DEC, NULL, 0x0, "SASP Get Wt Rep Interval", HFILL } }, { &hf_sasp_wt_rep_gwed_cnt, - { "Get Wt Rep-Grp WtEntry Data Cnt", "sasp.getwt-rep-grpwtentrydata.count", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Get Wt Rep-Grp WtEntry Data Cnt", "sasp.getwt-rep-grpwtentrydata.count", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Get Wt Rep Grp Wt Entry Data Cnt", HFILL } }, /*Set LB State Rep */ { &hf_sasp_setlbstate_rep, - { "Set Lbstate Rep", "sasp.msg.type", FT_UINT32, BASE_HEX, NULL, 0x0, + { "Set Lbstate Rep", "sasp.msg.type", + FT_UINT32, BASE_HEX, NULL, 0x0, "SASP Set Lbstate Rep", HFILL } }, { &hf_sasp_setlbstate_rep_sz, - { "Set Lbstate Rep-Size", "sasp.setlbstate-rep.size", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Set Lbstate Rep-Size", "sasp.setlbstate-rep.size", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Set Lbstate Rep Size", HFILL } }, { &hf_sasp_setlbstate_rep_rcode, - { "Set Lbstate Rep-Return Code", "sasp.setlbstate-rep.retcode", FT_UINT8, BASE_HEX, VALS(set_lb_state_reply_response_code), 0x0, + { "Set Lbstate Rep-Return Code", "sasp.setlbstate-rep.retcode", + FT_UINT8, BASE_HEX, VALS(set_lb_state_reply_response_code), 0x0, "SASP Set Lbstate Rep Return Code", HFILL } }, /*grp data comp */ { &hf_sasp_grpdatacomp, - { "Message Type", "sasp.msg.type", FT_UINT16, BASE_HEX, VALS(msg_table), 0x0, + { "Message Type", "sasp.msg.type", + FT_UINT16, BASE_HEX|BASE_EXT_STRING, &msg_table_ext, 0x0, "SASP Grp Data Comp", HFILL } }, { &hf_sasp_grpdatacomp_sz, - { "Grp Data Comp-Size","sasp.grpdatacomp.size", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Grp Data Comp-Size", "sasp.grpdatacomp.size", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Grp Data Comp size", HFILL } }, { &hf_sasp_grpdatacomp_LB_uid_len, - { "Grp Data Comp-Label UID Len","sasp.grpdatacomp.label.uid.len", FT_UINT8, BASE_DEC, NULL, 0x0, + { "Grp Data Comp-Label UID Len", "sasp.grpdatacomp.label.uid.len", + FT_UINT8, BASE_DEC, NULL, 0x0, "SASP Grp Data Comp Label Uid Len", HFILL } }, { &hf_sasp_grpdatacomp_LB_uid, - { "Grp Data Comp-Label UID","sasp.grpdatacomp.label.uid", FT_STRING, BASE_NONE, NULL, 0x0, - "SASP Grp Data Comp Label Uid",HFILL } }, + { "Grp Data Comp-Label UID", "sasp.grpdatacomp.label.uid", + FT_STRING, BASE_NONE, NULL, 0x0, + "SASP Grp Data Comp Label Uid", HFILL } }, { &hf_sasp_grpdatacomp_grp_name_len, - { "Grp Data Comp-Grp Name Len","sasp.grpdatacomp.grpname.len", FT_UINT8, BASE_DEC, NULL, 0x0, - "SASP Grp Data Comp Grp Name Len",HFILL } }, + { "Grp Data Comp-Grp Name Len", "sasp.grpdatacomp.grpname.len", + FT_UINT8, BASE_DEC, NULL, 0x0, + "SASP Grp Data Comp Grp Name Len", HFILL } }, { &hf_sasp_grpdatacomp_grp_name, - { "Grp Data Comp-Grp Name","sasp.grpdatacomp.grpname", FT_STRING, BASE_NONE, NULL, 0x0, + { "Grp Data Comp-Grp Name", "sasp.grpdatacomp.grpname", + FT_STRING, BASE_NONE, NULL, 0x0, "SASP Grp Data Comp Grp Name", HFILL } }, /*grp mem data comp */ { &hf_sasp_grp_memdatacomp, - { "Message Type","sasp.msg.type", FT_UINT16, BASE_HEX, VALS(msg_table), 0x0, + { "Message Type", "sasp.msg.type", + FT_UINT16, BASE_HEX|BASE_EXT_STRING, &msg_table_ext, 0x0, "SASP Grp Mem Data Comp", HFILL } }, { &hf_sasp_grp_memdatacomp_sz, - { "Grp Mem Data Comp-Size","sasp.grp-memdatacomp.size", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Grp Mem Data Comp-Size", "sasp.grp-memdatacomp.size", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Grp Mem Data Comp Size", HFILL } }, { &hf_sasp_grp_memdatacomp_cnt, - { "Grp Mem Data Comp-Count","sasp.grp.memdatacomp.count", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Grp Mem Data Comp-Count", "sasp.grp.memdatacomp.count", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Grp Mem Data Comp Cnt", HFILL } }, /*set LB state req*/ { &hf_sasp_setlbstate_req_sz, - { "Set LB State Req-Size", "sasp.setlbstate-req.size", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Set LB State Req-Size", "sasp.setlbstate-req.size", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Set LB State Req Size", HFILL } }, { &hf_sasp_setlbstate_req_LB_uid_len, - { "Set LB State Req-LB UID Len", "sasp.setlbstate-req.lbuid.len", FT_UINT8, BASE_DEC, NULL, 0x0, + { "Set LB State Req-LB UID Len", "sasp.setlbstate-req.lbuid.len", + FT_UINT8, BASE_DEC, NULL, 0x0, "SASP Set LB State Req LB Uid Len", HFILL } }, { &hf_sasp_setlbstate_req_LB_uid, - { "Set LB State Req-LB UID", "sasp.setlbstate-req.lbuid", FT_STRING, BASE_NONE, NULL, 0x0, + { "Set LB State Req-LB UID", "sasp.setlbstate-req.lbuid", + FT_STRING, BASE_NONE, NULL, 0x0, "SASP Set LB State Req LB UID", HFILL } }, { &hf_sasp_setlbstate_req_LB_health, - { "Set LB State Req-LB Health", "sasp.setlbstate-req.lbhealth", FT_UINT8, BASE_HEX, VALS(lbstate_healthtable), 0x0, + { "Set LB State Req-LB Health", "sasp.setlbstate-req.lbhealth", + FT_UINT8, BASE_HEX, VALS(lbstate_healthtable), 0x0, "SASP Set LB State Req LB Health", HFILL } }, { &hf_lbstate_flag, - { "Flags","sasp.flags.lbstate", FT_UINT8, BASE_HEX, NULL, 0x0, - NULL, HFILL }}, + { "Flags", "sasp.flags.lbstate", + FT_UINT8, BASE_HEX, NULL, 0x0, + NULL, HFILL } }, { &hf_sasp_pushflag, - { "PUSH", "sasp.flags.push", FT_BOOLEAN, 8, NULL, SASP_PUSH_FLAG, - "SASP Push Flag", HFILL }}, + { "PUSH", "sasp.flags.push", + FT_BOOLEAN, 8, NULL, SASP_PUSH_FLAG, + "SASP Push Flag", HFILL } }, { &hf_sasp_trustflag, - { "TRUST", "sasp.flags.trust", FT_BOOLEAN, 8, NULL, SASP_TRUST_FLAG, - "SASP Trust Flag", HFILL }}, + { "TRUST", "sasp.flags.trust", + FT_BOOLEAN, 8, NULL, SASP_TRUST_FLAG, + "SASP Trust Flag", HFILL } }, { &hf_sasp_nochangeflag, - { "NOCHANGE", "sasp.flags.nochange", FT_BOOLEAN, 8, NULL, SASP_NOCHANGE_FLAG, - "SASP Nochange Flag", HFILL }}, + { "NOCHANGE", "sasp.flags.nochange", + FT_BOOLEAN, 8, NULL, SASP_NOCHANGE_FLAG, + "SASP Nochange Flag", HFILL } }, /*grp mem state data comp */ { &hf_sasp_grp_memstatedatacomp, - { "Message Type", "sasp.msg.type", FT_UINT16, BASE_HEX, VALS(msg_table), 0x0, + { "Message Type", "sasp.msg.type", + FT_UINT16, BASE_HEX|BASE_EXT_STRING, &msg_table_ext, 0x0, "SASP Message Type", HFILL } }, { &hf_sasp_grp_memstatedatacomp_sz, - { "Grp Mem State-Size", "sasp.grp.memstate.size", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Grp Mem State-Size", "sasp.grp.memstate.size", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Grp Mem State Data Comp Size", HFILL } }, { &hf_sasp_grp_memstatedatacomp_cnt, - { "Grp Mem State-Count", "sasp.grp.memstate.count", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Grp Mem State-Count", "sasp.grp.memstate.count", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Grp Mem State Data Comp Count", HFILL } }, /*mem state instance */ { &hf_sasp_memstatedatacomp_instance, - { "Message Type", "sasp.msg.type", FT_UINT16, BASE_HEX, VALS(msg_table), 0x0, + { "Message Type", "sasp.msg.type", + FT_UINT16, BASE_HEX|BASE_EXT_STRING, &msg_table_ext, 0x0, "SASP Message Type", HFILL } }, { &hf_sasp_memstatedatacomp_sz, - { "Mem State-Size", "sasp.memstate.size", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Mem State-Size", "sasp.memstate.size", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Mem State Data Comp Size", HFILL } }, { &hf_sasp_memstatedatacomp_state, - { "Mem State-State", "sasp.memstate.state", FT_UINT8, BASE_HEX, NULL, 0x0, + { "Mem State-State", "sasp.memstate.state", + FT_UINT8, BASE_HEX, NULL, 0x0, "SASP Mem State Data Comp State", HFILL } }, { &hf_sasp_memstatedatacomp_quiesce_flag, - { "Mem State-Quiesce Flag", "sasp.flags.quiesce", FT_BOOLEAN, 8, NULL, SASP_QUIESCE_FLAG, - "SASP Quiesce Flag", HFILL }}, + { "Mem State-Quiesce Flag", "sasp.flags.quiesce", + FT_BOOLEAN, 8, NULL, SASP_QUIESCE_FLAG, + "SASP Quiesce Flag", HFILL } }, /*weight entry data comp*/ { &hf_sasp_weight_entry_data_comp_type, - { "Wt Entry Data Comp", "sasp.msg.type", FT_UINT16, BASE_HEX, VALS(msg_table), 0x0, + { "Wt Entry Data Comp", "sasp.msg.type", + FT_UINT16, BASE_HEX|BASE_EXT_STRING, &msg_table_ext, 0x0, "SASP Wt Entry Data Comp", HFILL } }, { &hf_sasp_weight_entry_data_comp_sz, - { "Wt Entry Data Comp-Size", "sasp.wtentry.size", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Wt Entry Data Comp-Size", "sasp.wtentry.size", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Wt Entry Data Comp Size", HFILL } }, { &hf_sasp_weight_entry_data_comp_state, - { "Wt Entry Data Comp-state", "sasp.wtentry.state", FT_UINT8, BASE_HEX, NULL, 0x0, + { "Wt Entry Data Comp-state", "sasp.wtentry.state", + FT_UINT8, BASE_HEX, NULL, 0x0, "SASP Wt Entry Data Comp State", HFILL } }, { &hf_wtstate_flag, - { "Flags","sasp.flags.wtstate", FT_UINT8, BASE_HEX, NULL, 0x0, - NULL, HFILL }}, + { "Flags", "sasp.flags.wtstate", + FT_UINT8, BASE_HEX, NULL, 0x0, + NULL, HFILL } }, { &hf_sasp_wed_contactsuccess_flag, - { "Contact Success", "sasp.flags.contactsuccess", FT_BOOLEAN, 8, NULL, SASP_WED_CONTACT_SUCCESS_FLAG, - "SASP Contact Success Flag", HFILL }}, + { "Contact Success", "sasp.flags.contactsuccess", + FT_BOOLEAN, 8, NULL, SASP_WED_CONTACT_SUCCESS_FLAG, + "SASP Contact Success Flag", HFILL } }, { &hf_sasp_wed_quiesce_flag, - { "Quiesce", "sasp.flags.quiesce", FT_BOOLEAN, 8, NULL, SASP_WED_QUIESCE_FLAG, - "SASP Quiesce Flag", HFILL }}, + { "Quiesce", "sasp.flags.quiesce", + FT_BOOLEAN, 8, NULL, SASP_WED_QUIESCE_FLAG, + "SASP Quiesce Flag", HFILL } }, { &hf_sasp_wed_registration_flag, - { "Registration", "sasp.flags.registration", FT_BOOLEAN, 8, NULL, SASP_WED_REG_FLAG, - "SASP Registration Flag", HFILL }}, + { "Registration", "sasp.flags.registration", + FT_BOOLEAN, 8, NULL, SASP_WED_REG_FLAG, + "SASP Registration Flag", HFILL } }, { &hf_sasp_wed_confident_flag, - { "Confident", "sasp.flags.confident", FT_BOOLEAN, 8, NULL, SASP_WED_CONF_FLAG, - "SASP Confident Flag", HFILL }}, + { "Confident", "sasp.flags.confident", + FT_BOOLEAN, 8, NULL, SASP_WED_CONF_FLAG, + "SASP Confident Flag", HFILL } }, { &hf_sasp_weight_entry_data_comp_weight, - { "Wt Entry Data Comp-weight", "sasp.wtentrydatacomp.weight", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Wt Entry Data Comp-weight", "sasp.wtentrydatacomp.weight", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Wt Entry Data Comp weight", HFILL } }, /*grp wt entry data comp */ { &hf_sasp_grp_wt_entry_datacomp_type, - { "Grp Wt Entry Data Comp", "sasp.msg.type", FT_UINT16, BASE_HEX, VALS(msg_table), 0x0, + { "Grp Wt Entry Data Comp", "sasp.msg.type", + FT_UINT16, BASE_HEX|BASE_EXT_STRING, &msg_table_ext, 0x0, "SASP Grp Wt Entry Data Comp", HFILL } }, { &hf_sasp_grp_wt_entry_datacomp_sz, - { "Grp Wt Entry Data Comp Size", "sasp.grp-wtentrydata.size", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Grp Wt Entry Data Comp Size", "sasp.grp-wtentrydata.size", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Grp Wt Entry Data Comp Size", HFILL } }, { &hf_sasp_grp_wt_entry_datacomp_cnt, - { "Grp Wt Entry Data Comp Cnt", "sasp.grp-wtentrydata.count", FT_UINT16, BASE_DEC, NULL, 0x0, + { "Grp Wt Entry Data Comp Cnt", "sasp.grp-wtentrydata.count", + FT_UINT16, BASE_DEC, NULL, 0x0, "SASP Grp Wt Entry Data Comp Cnt", HFILL } }, }; @@ -1568,7 +1688,7 @@ void proto_register_sasp(void) &ett_setlbstate_req_lbflag, &ett_sasp_grp_memstatedatacomp, &ett_sasp_memstatedatacomp, -/* &ett_dereg_req_reason_flag,*/ +/* &ett_dereg_req_reason_flag, */ &ett_sasp_grp_wt_entry_datacomp, &ett_sasp_weight_entry_data_comp, &ett_wt_entry_data_flag, @@ -1577,22 +1697,21 @@ void proto_register_sasp(void) module_t *sasp_module; - proto_sasp = proto_register_protocol("Server/Application State Protocol","SASP","sasp"); + proto_sasp = proto_register_protocol("Server/Application State Protocol", "SASP", "sasp"); - proto_register_field_array(proto_sasp, hf, array_length(hf)); /*Registering Field Array */ - proto_register_subtree_array(ett, array_length(ett)); /*registering subtree*/ + proto_register_field_array(proto_sasp, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); sasp_module = prefs_register_protocol(proto_sasp, NULL); prefs_register_bool_preference(sasp_module, "desegment_sasp_messages", "Reassemble SASP messages spanning multiple TCP segments", - "Whether the SASP dissector should reassemble messages spanning multiple TCP segments." - " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\"" - " in the TCP protocol settings.", + "Whether the SASP dissector should reassemble messages" + " spanning multiple TCP segments." + " To use this option, you must also enable" + " \"Allow subdissectors to reassemble TCP streams\"" + " in the TCP protocol settings.", &sasp_desegment); - - - } /* Handing off to TCP */ |