summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
11 daysv7: implement jnsetHEADmastermainMaciej Żenczykowski
Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I5f797c8d86c42be3d03341e14b8100e0e58406e8
12 daysv7: introduce read_packet_u8() helperMaciej Żenczykowski
Both before and after: text data bss dec hex filename 4296 0 0 4296 10c8 apf_interpreter.arm.o text data bss dec hex filename 5581 0 0 5581 15cd apf_interpreter.x86.o Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I383e33eb174c45f8965395e4a0d251fd50305755
12 daysv7: use DECODE_U8() in more placesMaciej Żenczykowski
Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I1f1f6f888f57eee58d07e2edb642a55eceeea08b
12 daysv7: bump version numberMaciej Żenczykowski
so we have a different version (and clean slate) for upcoming work Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I01e137df2556540083e6454fecd4a830831052c2
12 daysv7: don't put version number in apf_interpreter.h include guard.Maciej Żenczykowski
Needless - one should never include multiple versions anyway, and it's a needless diff when we finalize a version. Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I6117669a774b552486ce5afb8e299b71d385c805
12 daysdevtools: use v7 interpreter source, not the no longer existing v5Maciej Żenczykowski
Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I1f66a387e1f5bc54f6d7a2e307b3af1d1e796a65
12 daysrename: libapf_v5 to libapf_v7Maciej Żenczykowski
Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I77c57ad66d10287c496aab13cf46dadfb9cc49c8
12 daysv5: rename to v7/Maciej Żenczykowski
Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I96d57d510300f5429b1a855ad2b229a5e45636d8
12 daysv4: add V4_ to include guardMaciej Żenczykowski
Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: Ifee46ad7a5151aabcefc614047450ef56689fef7
12 daysv6: rename include guard (v5 -> v6)Maciej Żenczykowski
Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: Ia760a8e992a813132074040ed963f73ad5288c07
12 daysMerge "v6: set version to 6.000" into mainMaciej Żenczykowski
2024-05-01Merge changes I7bbb2559,I8aec5ebd into mainTreehugger Robot
* changes: v6: copy in from v5 v6: empty out directory in prep for copy
2024-04-30v6: set version to 6.000Maciej Żenczykowski
Any future bugfix release(s) will be 6.001 (ie. 6001), etc. Test: N/A Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I16f041852cdfe80d7e0f76f10163d78aa9e063d7
2024-04-30v6: copy in from v5Maciej Żenczykowski
Test: N/A Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I7bbb255988e9f005484e3d1edd31c3d9a81e7a5f
2024-04-30v6: empty out directory in prep for copyMaciej Żenczykowski
Test: N/A Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I8aec5ebd622872378a508f4b324fd241cd5f8ac3
2024-04-30Add disassembler support for EXCEPTIONBUFFER_EXT_OPCODEYuyang Huang
Test: TH Change-Id: Ie3cef20d5f1bfaae7fdcd8d1ea278c8a1977c7d6
2024-04-26v5: support even set multiples in JBSMATCHMaciej Żenczykowski
shrinks code size by 4 After: text data bss dec hex filename 4296 0 0 4296 10c8 apf_interpreter.arm.o text data bss dec hex filename 5581 0 0 5581 15cd apf_interpreter.x86.o Test: TreeHugger, manual Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I85fef1a55cb0c00776c8563cb78110cf7c4023cb
2024-04-26Merge "Extend disassembler's JBSMATCH support for multi-byte sequences" into ↵Maciej Żenczykowski
main
2024-04-26Extend disassembler's JBSMATCH support for multi-byte sequencesYuyang Huang
Updated the disassembler to enable the JBSMATCH opcode to handle matching against multiple byte sequences. Test: TH Change-Id: Ice21643d9bc144073a75a283262a4721ae5b1196
2024-04-26v5: add some more commentsMaciej Żenczykowski
Test: N/A Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: Ia4fce23ed780f225da6f60117c035c97352e5c48
2024-04-25v4: copy apf.h to v4/apf.hMaciej Żenczykowski
v4/apf_interpreter.c includes it... git log apf.h: 17c1fbc apf: Tweak the interpreter data addressing scheme 7541097 Add APF opcodes to read/write data memory (take 2) dee75a7 Revert "Add APF opcodes to read and write data memory." 6921f74 Add APF opcodes to read and write data memory. 497d4ee Add APF disassembler for testing purposes. last changed by: Author: Bernie Innocenti <codewiz@google.com> on Date: Tue Apr 10 22:52:30 2018 +0900 Test: N/A Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I3fcf1c7b848bcae393484de2a9676b74fdbc8e5e
2024-04-25v5: add one more function indirect for apf_run()Maciej Żenczykowski
After: text data bss dec hex filename 4300 0 0 4300 10cc apf_interpreter.arm.o text data bss dec hex filename 5578 0 0 5578 15ca apf_interpreter.x86.o Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I1a7ea17ad4267143cb0a6babca46195f59acf842
2024-04-25Add JONEOF_EXT_OPCODE disassembly support to apf_disassemblerYuyang Huang
Test: TH Change-Id: I4a8115551b80d35c8e43da999eeb810b5f1b4363
2024-04-24v5: introduce exception debug bufferMaciej Żenczykowski
After: text data bss dec hex filename 4312 0 0 4312 10d8 apf_interpreter.arm.o text data bss dec hex filename 5587 0 0 5587 15d3 apf_interpreter.x86.o Test: TreeHugger, manually Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: Iec488d561a9d3cbb9886191541b23746ee4a08bf
2024-04-24v5: add JBSMATCH multi match supportMaciej Żenczykowski
After: text data bss dec hex filename 4128 0 0 4128 1020 apf_interpreter.arm.o text data bss dec hex filename 5354 0 0 5354 14ea apf_interpreter.x86.o Test: TreeHugger, manually Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: Ib558903a8dd7d92f0dd84a47521af94eb53b4216
2024-04-24v5: optimize for arm interpreter size (as opposed to x86)Maciej Żenczykowski
u8's are cheaper than u32s (x86 is less efficient due to less byte registers and need for conversions, but any x86 using wifi chip would have tons of ram anyway, in practice this interpreter needs to be embedded into 32-bit arm or mips or something fw, not x86) After: text data bss dec hex filename 4072 0 0 4072 fe8 apf_interpreter.arm.o text data bss dec hex filename 5259 0 0 5259 148b apf_interpreter.x86.o Test: TreeHugger, manually Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: Iccc46e9a65f638b4cd2d3f4b97c02d1a1d92b2dd
2024-04-24v5: optimize interpreter immediate decodingMaciej Żenczykowski
Tested various approaches for converting len_field 0/1/2/3 into imm_len 0/1/2/4: (len_field * 5 + 1) / 4 (len_field * 5 + 1) >> 2 ((len_field + 1) >> 2) + len_field len_field + (len_field == 3) 0x4210 >> (4 * len_field) & 0xF 04210 >> (3 * len_field) & 7 len_field ? 1 << (len_field - 1) : 0 and if (len_field) { const u32 imm_len = 1 << (len_field - 1); ... } plus u32 array [0, 1, 2, 4] lookup Before: text data bss dec hex filename 4148 0 0 4148 1034 apf_interpreter.arm.o text data bss dec hex filename 5184 0 0 5184 1440 apf_interpreter.x86.o After: text data bss dec hex filename 4100 0 0 4100 1004 apf_interpreter.arm.o text data bss dec hex filename 5154 0 0 5154 1422 apf_interpreter.x86.o Test: TreeHugger, manually Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I96fc324bb96b60d702ff6f6c45f52741997726b9
2024-04-24v5: make JONEOF support 2..33 values instead of 1..32Maciej Żenczykowski
There's no benefit to supporting sets of size 1 Test: TreeHugger, manual Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I89c8af718edd9583170d714ad3d81b2cc814c825
2024-04-23Fix documentation for JONEOF_EXT_OPCODEYuyang Huang
Test: TH Change-Id: I44314b0cac3f21bfb47c661c9efbe85300c8dfeb
2024-04-15v5: reduce number of var declarations after statements, part 3Maciej Żenczykowski
This allows us to build without: -Wno-declaration-after-statement Test: TreeHugger, manually Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I1f27e9b1611b3f0f1582c4d0d28a56786e728094
2024-04-15v5: reduce number of var declarations after statements, part 2Maciej Żenczykowski
Trying to get us closer to being able to remove -Wno-declaration-after-statement Test: TreeHugger, manually Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: Ie99a362b1be1bc7844bc44c865d517c7cc294f1d
2024-04-14v5: reduce number of var declarations after statementsMaciej Żenczykowski
Trying to get us closer to being able to remove -Wno-declaration-after-statement Doing a small part only, for early feedback on approach... Test: TreeHugger, manually Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: Ia9fb1e14e374ed7f4b23cd87611a75de9904cd17
2024-04-14v5: make apf_run() return more helpful value on firmware integration bugsMaciej Żenczykowski
Test: TreeHugger, manually Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I4a904dac4a9bf21e3670af029d65587d44548c54
2024-04-15v5: fix a bug in JONEOF_EXT_OPCODEMaciej Żenczykowski
Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: Ieca2ddbd285bd3c52a910c2881ad6202a931da3f
2024-04-15v5: add back PASS for 'normal' pass casesMaciej Żenczykowski
these are: - correctly jumping to PASS label - the PASSDROP opcode (in PASS mode) - dns matching on corrupt packet (safe mode) Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: Iab204668f721337a826fbe37b94c5edc8d359bfb
2024-04-14v5: replace PASS_PACKET with EXCEPTIONMaciej Żenczykowski
PASS_PACKET should be replaced with PASS as it is needlessly verbose - what else would we be passing? However, the majority of the cases where we return PASS_PACKET are actually EXCEPTIONs. As such we s/PASS_PACKET/EXCEPTION/, and we'll follow up with s/EXCEPTION/PASS/ on only the *normal* cases in the next commit. Generated via: sed -r -i 's@PASS_PACKET@EXCEPTION@g' apf_interpreter_source.c Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: If6496deb62c6070862c8cfc93f594543604b22ba
2024-04-14v5: replace DROP_PACKET with just DROPMaciej Żenczykowski
This is needlessly verbose - what else would we be dropping? Generated via: sed -r -i 's@DROP_PACKET@DROP@g' apf_interpreter_source.c Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I01c5151ce5282ed82bb67e7658499e8d930b945c
2024-04-09v5: get us closer to ANSI CMaciej Żenczykowski
This fixes: apf_interpreter.c:42:15: error: comma at end of enumerator list [-Werror=pedantic] 42 | match = True, apf_interpreter.c:1058:27: error: ISO C forbids empty initializer braces before C2X [-Werror=pedantic] 1058 | apf_context apf_ctx = {}; Test: TreeHugger, manually via 'devtools/mk' Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I43d9ad78010e1864b8d7cd27eb45de6404905e66
2024-04-09v5: remove unused err_codeMaciej Żenczykowski
Test: TreeHugger, manually via 'devtools/mk' Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: Iae841b2d9eed891760c7a6aa5a9519da17e5a293
2024-04-09v5: enable gcc -Wsign-conversionMaciej Żenczykowski
Test: TreeHugger, manually via devtools/mk Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I0573cae7a8fa6f33c75c799f026f11eb3caef024
2024-04-08disassembler: LDDW/STDW v6 mode, cnt -> counterMaciej Żenczykowski
Test: TreeHugger Signed-off-by: Change-Id: I7729d31a3806580ad8e5aa649c3e93bb160b9a24
2024-04-09Merge "Enhance disassembler output clarity for DROP/PASS opcodes" into mainTreehugger Robot
2024-04-09Add disassembler support for STDW and LDDW opcodes in v6 modeYuyang Huang
Test: TH Change-Id: I8084339e173357a23a6ffc0120f69c160ef4628f
2024-04-09Enhance disassembler output clarity for DROP/PASS opcodesYuyang Huang
Modified disassembler to improve the readability of output related to DROP and PASS opcodes. Test: TH Change-Id: Ice54cc218c6deef61aef0785a12c7f1ee2827207
2024-04-07v6: apf_interpreter.{h,c} - create placeholder textMaciej Żenczykowski
also create symlinks from root directories apf_interpreter.{h,c} into v4 subdirectory moved location. Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: Id0d9feaf300a7011822dd31fa321e909d88e6a1a
2024-04-06v4: move apf_interpreter.{h,c} into v4 subdirectoryMaciej Żenczykowski
The following commit will add symlinks from the current location to the new, not including that here, as it prevents this change from being viewed by git as a simple file move... Note that apf_interpreter.c hasn't changed in years (though there are a pair of tracing related changes since the original Android P release), while the apf_interpreter.h file only had a single commit converting some non-breaking spaces to normal ones. apf_interpreter.h was at: commit 3210e4e49222e391d738b5a713bd93c5ab0f5900 Author: Maciej Żenczykowski <maze@google.com> Date: Thu Dec 21 01:18:56 2023 -0800 'apf_interpreter.h: convert hard (non-breaking) spaces to normal ascii spaces' $ git log --oneline apf_interpreter.h 3210e4e apf_interpreter.h: convert hard (non-breaking) spaces to normal ascii spaces 17c1fbc (android-p-preview-2) apf: Tweak the interpreter data addressing scheme apf_interpreter.c was at: commit 983eb51423383190f80d31ed32fa38a112f5c04d Author: Lorenzo Colitti <lorenzo@google.com> Date: Thu Sep 26 22:14:16 2019 +0900 'Print disassembled code in apf_run.' $ git log --oneline apf_interpreter.c 983eb51 Print disassembled code in apf_run. d0174a6 Add basic execution tracing support to apf_run 17c1fbc (android-p-preview-2) apf: Tweak the interpreter data addressing scheme Test: TreeHugger, with follow up. Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I5ec6b73c49efdb8a5ac555ba56c408ba83312996
2024-04-02Remove the unused IPPROTO_{ICMP|ICMPV6|TCP|UDP} constantsYuyang Huang
Test: TH Change-Id: I962e709e332bbf74cb15da6ab0733068dff20e3c
2024-04-03Add test for IGMPv2 packet checksum calculationYuyang Huang
Introduced a unit test to specifically verify the correct calculation of IGMPv2 packet checksums. Test: TH Change-Id: I9e9eee22ccd423770ad0959eb145508bc96ae0d1
2024-03-30v5: whitespace realignmentMaciej Żenczykowski
We weren't consistent about using 4-space indent, so use that consistently throughout, additionally use half (ie. 2-space) indent for case labels. Test: N/A, empty 'git show -b' Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I91320a17965b44dbde255fe7e39e19ca11b39a1f
2024-03-20apf2java: adjust for jnebs -> jbsne renameMaciej Żenczykowski
Test: N/A Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: Icd371541a348b6e3b09d00afbacb9743e07093e8