#!/bin/bash

# NFT_TEST_REQUIRES(NFT_TEST_HAVE_bitwise_multireg)
# NFT_TEST_REQUIRES(NFT_TEST_HAVE_bitshift)

set -e

$NFT -f - <<EOF
table ip t {
	map m {
		typeof ip saddr : mark
		elements = { 1.2.3.4 : 42 }
	}

	chain c {
		meta mark set ip saddr map @m
		meta mark set ip saddr & 255.255.255.0 map @m
		meta mark set ip saddr ^ 255.255.255.0 map @m
		meta mark set ip saddr ^ ip daddr map @m
		meta mark set ip saddr ^ 1 map @m

		meta mark set ip saddr & ip daddr map { 10.1.2.3 : 1, 10.2.3.4 : 2 }
		meta mark set ip saddr ^ ip daddr map { 10.1.2.3 : 1, 10.2.3.4 : 2 }
	}
}
EOF

$NFT add element "t m { 10.1.2.1 : 23 }"
