I'm a little confused on how this works. I posted this too so that it may be referenced to in the future for those that do not have a background in CS. I will write about this later too in documentation.
Trying to understand this: /* TCP Header length + TCP SYN/ECN Flag */ c16((0x8 << 12) | SYN | ECN) Okay, so we have a 16 byte constant representing HL + rsvd + tcp[13] code flags I understand the first operation: ((0x8 << 12)) shift 12 bits to the left of 8. Gives us 1000000000000000 which is the 2 bytes necessary for c16 $ echo -n 1000000000000000 | wc -c 16 I understand the SYN and ECN operations taken individually. e.g. SYN = 2 (0000 0010) - The SYN bit. ECN = 64 (0100 0000) - The ECN bit The pipe (|) used in the trafgen language is an OR operator correct? Presuming this I get 1000 0000 0100 0010 as a final result. Looks right to me. Pardon in advance for what may be incorrect terminology, (corrections accepted). So is the flow like this (I'm interested in the details so I can better understand)? 1. evaluate first expression (0x8 << 12) 2. evaluate second expression (1 << 1) 3. evaluate third expression ( 1 << 6 ) 4. OR first and second expression 5. OR result from above(step 5) with third expression 6. Result is c16(1000000001000010) Is this all correct? FYI: I used this for the operations: http://www.miniwebtool.com/bitwise-calculator/ Thanks! Jon -- You received this message because you are subscribed to the Google Groups "netsniff-ng" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
