Support backwards jumps in ApfGenerator.

ApfGenerator currently refuses to generate backward jumps
to prevent infinite loops. However, the interpreter actually does
support backward jumps; it prevents infinite loops by means of a
maximum instruction counter which accepts the packet if reached.

This CL removes the backwards jump restriction in ApfGenerator to
allow us to write subroutines and complex parsing code that
requires loops. This will be used by an upcoming change that adds
better support for parsing DNS packets.

Bug: 263429226
Test: see next CL in stack
Change-Id: I7f17c66da0c0765145cdf94cf0cb578be2a201b3
1 file changed