summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ct.c8
-rw-r--r--tests/py/inet/ct.t2
-rw-r--r--tests/py/inet/ct.t.payload8
3 files changed, 14 insertions, 4 deletions
diff --git a/src/ct.c b/src/ct.c
index 4f7807de..14cc0e5e 100644
--- a/src/ct.c
+++ b/src/ct.c
@@ -292,13 +292,13 @@ const struct ct_template ct_templates[__NFT_CT_MAX] = {
[NFT_CT_EVENTMASK] = CT_TEMPLATE("event", &ct_event_type,
BYTEORDER_HOST_ENDIAN, 32),
[NFT_CT_SRC_IP] = CT_TEMPLATE("ip saddr", &ipaddr_type,
- BYTEORDER_BIG_ENDIAN, 0),
+ BYTEORDER_BIG_ENDIAN, 32),
[NFT_CT_DST_IP] = CT_TEMPLATE("ip daddr", &ipaddr_type,
- BYTEORDER_BIG_ENDIAN, 0),
+ BYTEORDER_BIG_ENDIAN, 32),
[NFT_CT_SRC_IP6] = CT_TEMPLATE("ip6 saddr", &ip6addr_type,
- BYTEORDER_BIG_ENDIAN, 0),
+ BYTEORDER_BIG_ENDIAN, 128),
[NFT_CT_DST_IP6] = CT_TEMPLATE("ip6 daddr", &ip6addr_type,
- BYTEORDER_BIG_ENDIAN, 0),
+ BYTEORDER_BIG_ENDIAN, 128),
};
static void ct_print(enum nft_ct_keys key, int8_t dir, uint8_t nfproto,
diff --git a/tests/py/inet/ct.t b/tests/py/inet/ct.t
index 1a656aa4..3d0dffad 100644
--- a/tests/py/inet/ct.t
+++ b/tests/py/inet/ct.t
@@ -6,6 +6,8 @@
meta nfproto ipv4 ct original saddr 1.2.3.4;ok;ct original ip saddr 1.2.3.4
ct original ip6 saddr ::1;ok
+ct original ip daddr {1.2.3.4} accept;ok
+
# missing protocol context
ct original saddr ::1;fail
diff --git a/tests/py/inet/ct.t.payload b/tests/py/inet/ct.t.payload
index 83146869..3b274f8c 100644
--- a/tests/py/inet/ct.t.payload
+++ b/tests/py/inet/ct.t.payload
@@ -10,3 +10,11 @@ inet test-inet input
[ ct load src_ip6 => reg 1 , dir original ]
[ cmp eq reg 1 0x00000000 0x00000000 0x00000000 0x01000000 ]
+# ct original ip daddr {1.2.3.4} accept
+__set%d test-inet 3 size 1
+__set%d test-inet 0
+ element 04030201 : 0 [end]
+inet test-inet input
+ [ ct load dst_ip => reg 1 , dir original ]
+ [ lookup reg 1 set __set%d ]
+ [ immediate reg 0 accept ]