The following updates include the addition of NDS defragmentation packets. Also updated NCP return values for a number of NCP packets. Several fixes for NCP dissection.
NEW feature included the defragmentation of NDS packets.
/* * Defrag logic * * NDS fragment not being set to 0xffffffff indicates we are inside or at the * beginning of a fragment. But when the end of the fragment * is encounterd the flag is set to 0xffffffff. So we must mark what the * frame number is of the end fragment so that we will be * able to redissect if the user clicks on the packet * or resorts/filters the trace. * * Once we are certain that we are in a fragment sequence * then we can just process each fragment in this conversation * until we reach the fragment == 0xffffffff packet. * * We will be able to easily determine if a conversation is a fragment * with the exception of the last packet in the fragment. So remember * the last fragment packet number. * * Also the NDS dissection requires the values of NDS Verb, Version, and Flags. * Without this values being remembered from the first request packet then * we will be unable to dissect the reply packet. For this reason we remember * these values on the first fragment and then populate the values in the final * fragment. We only do this on the first dissection. * */
Changes to:
ncp2222.py
1. Added Secret Store Services group
2. Added a number of NCP return values
3. Added support for NDS defragmentation
4. Fixed type from file to bindery on ncp's 23/20, 23/21, 23/22, 23/24, 23/27, 23/28, 23/29, 23/30, and 23/31
5. Fixed type from comm to nmas on ncp 91
6. Fixed ncp 92 to include 92/01, 92/02, 92/03, 92/04, 92/05, 92/06, 92/07, 92/08, 92/09, and 92/10
7. Added return value for 104/02
8. Fixed reply structures for NCP 123/60 and NCP 123/79
packet-ncp2222.inc
1. Added support for defragmentation of NDS packets
2. Moved the run_info_string logic outside of the pinfo->fd->flags->visited because of the dissection of info strings is not processed on subsequent decodes then the find/string/info will not locate info string values. By moving this outside then when the find logic runs a tvb_dissect_new then the info string gets processed again and all data is visable. Otherwise only info column data that is processed by the NCP dissector is visable not any data from ncp2222.py processed by the info string function.
packet-ncp.c
1. Added support for defragmentation of NDS packets
2. The packet signature fixes seemed to never been applied. I have been using this code to dissect reply packets with packet signatures for quite some time and have never experienced any problems with it. Without these changes then reply packets containing signatures will not be decoded properly. It was recommended by Guy to not use public variables to track the signatures but it has been my experience that if signatures are enabled then it is enabled in the whole environment and would be valid for all NCP packets within the trace. I could change this but it would add additional code to build a memory table to track this. If for some reason it is determined to not add this part of the code then I will have to go back and add this table.
packet-ncp-int.h
1. Added support for defragmentation of NDS packets
Please apply,
Greg |