* because the wire encoding is little-endian and this function always
* receives a big-endian address value.
*/
- b0 = gen_linktype(cstate, ETHERTYPE_DN);
/* Check for pad = 1, long header case */
tmp = gen_mcmp(cstate, OR_LINKPL, 2, BPF_H, 0x8106U, 0xFF07U);
b1 = gen_cmp(cstate, OR_LINKPL, 2 + 1 + offset_lh,
gen_and(tmp, b2);
gen_or(b2, b1);
- /* Combine with test for cstate->linktype */
- gen_and(b0, b1);
return b1;
}
bpf_error(cstate, "AppleTalk host filtering not implemented");
case Q_DECNET:
- return gen_dnhostop(cstate, addr, dir);
+ b0 = gen_linktype(cstate, ETHERTYPE_DN);
+ b1 = gen_dnhostop(cstate, addr, dir);
+ gen_and(b0, b1);
+ return b1;
case Q_LAT:
bpf_error(cstate, "LAT host filtering not implemented");