From 8dce3504fde7da933dc6e7ecfeb99b4b45125f32 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Thu, 15 Jan 2009 23:19:58 +0100 Subject: cache: add status field to store the object status This patch adds the status field to the cache object. This avoids the (ab)use of the alarm to check if an entry is active or dead. This is the first step to possibly move the alarm to the cache_extra memory space of the ftfw (which is the only use by now). Signed-off-by: Pablo Neira Ayuso --- include/cache.h | 8 ++++++++ include/network.h | 1 + 2 files changed, 9 insertions(+) (limited to 'include') diff --git a/include/cache.h b/include/cache.h index dcd6bcd..fd8e05f 100644 --- a/include/cache.h +++ b/include/cache.h @@ -23,11 +23,19 @@ enum { }; #define CACHE_MAX_FEATURE __CACHE_MAX_FEATURE +enum { + C_OBJ_NONE = 0, /* not in the cache */ + C_OBJ_NEW, /* just added to the cache */ + C_OBJ_ALIVE, /* in the cache, alive */ + C_OBJ_DEAD /* still in the cache, but dead */ +}; + struct cache; struct cache_object { struct hashtable_node hashnode; struct nf_conntrack *ct; struct cache *cache; + int status; struct alarm_block alarm; char data[0]; }; diff --git a/include/network.h b/include/network.h index 619ce3e..f02d920 100644 --- a/include/network.h +++ b/include/network.h @@ -30,6 +30,7 @@ int nethdr_size(int len); void nethdr_set(struct nethdr *net, int type); void nethdr_set_ack(struct nethdr *net); void nethdr_set_ctl(struct nethdr *net); +int object_status_to_network_type(int status); #define NETHDR_DATA(x) \ (struct netattr *)(((char *)x) + NETHDR_SIZ) -- cgit v1.2.3