diff options
author | Florian Westphal <fw@strlen.de> | 2021-12-03 20:19:10 +0100 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2021-12-09 11:12:32 +0100 |
commit | b2591d4b13ab95240216a93d682b842c28b2b884 (patch) | |
tree | 4e811645bd28b970db28edaa8b953cfa87034914 /tests/py | |
parent | 95a8503d019a81ec9225a7ae4cb10d115acac2b9 (diff) |
netlink_delinearize: zero shift removal
Remove shifts-by-0. These can occur after binop postprocessing
has adjusted the RHS value to account for a mask operation.
Example: frag frag-off @s4
Is internally represented via:
[ exthdr load ipv6 2b @ 44 + 2 => reg 1 ]
[ bitwise reg 1 = ( reg 1 & 0x0000f8ff ) ^ 0x00000000 ]
[ bitwise reg 1 = ( reg 1 >> 0x00000003 ) ]
[ lookup reg 1 set s ]
First binop masks out unwanted parts of the 16-bit field.
Second binop needs to left-shift so that lookups in the set will work.
When decoding, the first binop is removed after the exthdr load
has been adjusted accordingly. Constant propagation adjusts the
shift-value to 0 on removal. This change then gets rid of the
shift-by-0 entirely.
After this change, 'frag frag-off @s4' input is shown as-is.
Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'tests/py')
0 files changed, 0 insertions, 0 deletions