summaryrefslogtreecommitdiff
path: root/v5/apf_interpreter_source.c
diff options
context:
space:
mode:
Diffstat (limited to 'v5/apf_interpreter_source.c')
-rw-r--r--v5/apf_interpreter_source.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/v5/apf_interpreter_source.c b/v5/apf_interpreter_source.c
index 636d679..f48a15b 100644
--- a/v5/apf_interpreter_source.c
+++ b/v5/apf_interpreter_source.c
@@ -173,7 +173,7 @@ static int do_apf_run(apf_context* ctx) {
u32 pktcopy_src_offset = 0; // used for various pktdatacopy opcodes
switch (opcode) {
- case PASSDROP_OPCODE: {
+ case PASSDROP_OPCODE: { // APFv6+
if (len_field > 2) return PASS_PACKET; // max 64K counters (ie. imm < 64K)
if (imm) {
if (4 * imm > ctx->ram_len) return PASS_PACKET;
@@ -218,7 +218,7 @@ static int do_apf_run(apf_context* ctx) {
break;
}
case JMP_OPCODE:
- if (reg_num && !ctx->v6) {
+ if (reg_num && !ctx->v6) { // APFv6+
// First invocation of APFv6 jmpdata instruction
counter[-1] = 0x12345678; // endianness marker
counter[-2]++; // total packets ++
@@ -383,7 +383,7 @@ static int do_apf_run(apf_context* ctx) {
case JDNSAMATCH_EXT_OPCODE: // 44
case JDNSQMATCHSAFE_EXT_OPCODE: // 45
case JDNSAMATCHSAFE_EXT_OPCODE: { // 46
- const u32 imm_len = 1 << (len_field - 1);
+ const u32 imm_len = 1 << (len_field - 1); // EXT_OPCODE, thus len_field > 0
u32 jump_offs = decode_imm(ctx, imm_len); // 2nd imm, at worst 8 B past prog_len
int qtype = -1;
if (imm & 1) { // JDNSQMATCH & JDNSQMATCHSAFE are *odd* extended opcodes