It appears that there are issues with building CAKE on a Linux kernel 4.2.2, due to relying on API that weren't released for the 4.2.2 release. Perhaps the solution would be to either not support the 4.2.2 release or use #ifdefs.
make -C /lib/modules/4.2.2-1-ARCH/build SUBDIRS=/home/logan/sch_cake modules
make[1]: Entering directory '/usr/lib/modules/4.2.2-1-ARCH/build'
CC [M] /home/logan/sch_cake/sch_cake.o
/home/logan/sch_cake/sch_cake.c: In function ‘cake_hash’:
/home/logan/sch_cake/sch_cake.c:253:8: error: ‘FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL’ undeclared (first use in this function)
FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL);
^
/home/logan/sch_cake/sch_cake.c:253:8: note: each undeclared identifier is reported only once for each function it appears in
/home/logan/sch_cake/sch_cake.c:252:2: error: too many arguments to function ‘skb_flow_dissect_flow_keys’
skb_flow_dissect_flow_keys(skb, &keys,
^
In file included from include/linux/skbuff.h:37:0,
from /home/logan/sch_cake/sch_cake.c:46:
include/net/flow_dissector.h:173:20: note: declared here
static inline bool skb_flow_dissect_flow_keys(const struct sk_buff *skb,
^
scripts/Makefile.build:264: recipe for target '/home/logan/sch_cake/sch_cake.o' failed
make[2]: *** [/home/logan/sch_cake/sch_cake.o] Error 1
Makefile:1386: recipe for target '_module_/home/logan/sch_cake' failed
make[1]: *** [_module_/home/logan/sch_cake] Error 2
make[1]: Leaving directory '/usr/lib/modules/4.2.2-1-ARCH/build'
Makefile:7: recipe for target 'default' failed