diff --git a/bpf/progs/clatd.c b/bpf/progs/clatd.c index 2bb9d6f203..f4e4f3bb99 100644 --- a/bpf/progs/clatd.c +++ b/bpf/progs/clatd.c @@ -289,7 +289,7 @@ DEFINE_BPF_PROG("schedcls/egress4/clat_rawip", AID_ROOT, AID_SYSTEM, sched_cls_e if (ip4->ihl != 5) return TC_ACT_PIPE; // Packet must not be multicast - if ((ip4->daddr & 0xf0000000) == 0xe0000000) return TC_ACT_PIPE; + if ((ip4->daddr & htonl(0xf0000000)) == htonl(0xe0000000)) return TC_ACT_PIPE; // Calculate the IPv4 one's complement checksum of the IPv4 header. __wsum sum4 = 0; diff --git a/clatd/ipv4.c b/clatd/ipv4.c index 81bf87bd36..d7ac0d12a7 100644 --- a/clatd/ipv4.c +++ b/clatd/ipv4.c @@ -85,8 +85,8 @@ int ipv4_packet(clat_packet out, clat_packet_index pos, const uint8_t *packet, s return 0; } - if ((header->daddr & 0xf0000000) == 0xe0000000) { - logmsg_dbg(ANDROID_LOG_INFO, "ip_packet/daddr is multicast: %x", header->daddr); + if ((header->daddr & htonl(0xf0000000)) == htonl(0xe0000000)) { + logmsg_dbg(ANDROID_LOG_INFO, "ip_packet/daddr is multicast: %x", ntohl(header->daddr)); return 0; }