Karuna Grewal <karunagrewal98@xxxxxxxxx> wrote: > Meta evaluation function is extended to suport NFT_META_TSTAMP_NS option > by exposing the 64 bit timestamp of the packet to two 32 bit registers. Please test patches first, see below. > diff --git a/net/netfilter/nft_meta.c b/net/netfilter/nft_meta.c > index 987d2d6ce624..adfa1f221946 100644 > --- a/net/netfilter/nft_meta.c > +++ b/net/netfilter/nft_meta.c > @@ -254,6 +254,13 @@ void nft_meta_get_eval(const struct nft_expr *expr, > goto err; > strncpy((char *)dest, out->rtnl_link_ops->kind, IFNAMSIZ); > break; > + case NFT_META_TSTAMP_NS: > + if (skb->tstamp == 0) > + __net_timestamp((struct sk_buff *)skb); > + u64 timestamp = ktime_to_ns(skb->tstamp); > + *dest = (u32)(timestamp >> 32); > + *(dest + 1) = (u32) timestamp; > + break; Please consider using u64 *dest64 or similar to avoid the need for shifting. > default: > WARN_ON(1); > goto err; > @@ -371,6 +378,8 @@ static int nft_meta_get_init(const struct nft_ctx *ctx, > len = IFNAMSIZ; > break; > #endif > + case NFT_META_TSTAMP_NS: > + len = sizeof(u64); > default: > return -EOPNOTSUPP; This is missing a break statement after len assignment. Other than this, this patch looks good. Please consider sending v3 once you have nftables patches ready as well.