path: root/extensions
diff options
authorJoseph C. Sible <>2018-09-02 14:09:15 -0400
committerFlorian Westphal <>2018-09-10 15:25:16 +0200
commit15606f264c84f9cc01d2f60adb6eda6584ef2594 (patch)
treebfd813e4d1f1b965155298c5df0d3db54a0c56b6 /extensions
parent7345037e08a385e078350de1006f5ee2299cd2ef (diff)
doc: Improve layout of u32 instructions
Make it more clear where the instruction ends, and where what it does begins. Signed-off-by: Joseph C. Sible <> Signed-off-by: Florian Westphal <>
Diffstat (limited to 'extensions')
1 files changed, 15 insertions, 10 deletions
diff --git a/extensions/ b/extensions/
index 7c8615d3..40a69f8e 100644
--- a/extensions/
+++ b/extensions/
@@ -40,18 +40,23 @@ A is of type \fBchar *\fP, initially the address of the IP header
B and C are unsigned 32 bit integers, initially zero
The instructions are:
-number B = number;
+.B number
+B = number;
C = (*(A+B)<<24) + (*(A+B+1)<<16) + (*(A+B+2)<<8) + *(A+B+3)
-&number C = C & number
-<< number C = C << number
->> number C = C >> number
-@number A = A + C; then do the instruction number
+.B &number
+C = C & number
+.B << number
+C = C << number
+.B >> number
+C = C >> number
+.B @number
+A = A + C; then do the instruction number
Any access of memory outside [skb\->data,skb\->end] causes the match to fail.
Otherwise the result of the computation is the final value of C.