diff --git a/include/types/compression.h b/include/types/compression.h
new file mode 100644
index 0000000..96dd107
--- /dev/null
+++ b/include/types/compression.h
@@ -0,0 +1,63 @@
+/*
+ * include/types/compression.h
+ * This file defines everything related to compression.
+ *
+ * Copyright 2012 Exceliance, David Du Colombier <dducolombier@exceliance.fr>
+                              William Lallemand <wlallemand@exceliance.fr>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation, version 2.1
+ * exclusively.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifndef _TYPES_COMP_H
+#define _TYPES_COMP_H
+
+#include <zlib.h>
+
+struct comp {
+	struct comp_algo *algos;
+	struct comp_type *types;
+};
+
+struct comp_algo {
+	char *name;
+	int name_len;
+	int (*init)(void *, int);
+	int (*add_data)(void *v, const char *in_data, int in_len, char *out_data, int out_len);
+	int (*flush)(void *v, struct buffer *out, int flag);
+	int (*reset)(void *v);
+	int (*end)(void *v);
+	struct comp_algo *next;
+};
+
+union comp_ctx {
+	z_stream strm; /* zlib */
+};
+
+struct comp_type {
+	char *name;
+	int name_len;
+	struct comp_type *next;
+};
+
+
+#endif /* _TYPES_COMP_H */
+
+/*
+ * Local variables:
+ *  c-indent-level: 8
+ *  c-basic-offset: 8
+ * End:
+ */
+
diff --git a/include/types/proxy.h b/include/types/proxy.h
index 9bfa68d..343d4ad 100644
--- a/include/types/proxy.h
+++ b/include/types/proxy.h
@@ -363,6 +363,7 @@
 		struct list listeners;		/* list of listeners belonging to this frontend */
 	} conf;					/* config information */
 	void *parent;				/* parent of the proxy when applicable */
+	struct comp *comp;			/* http compression */
 };
 
 struct switching_rule {
diff --git a/include/types/session.h b/include/types/session.h
index e3ccde8..4726a19 100644
--- a/include/types/session.h
+++ b/include/types/session.h
@@ -32,6 +32,7 @@
 #include <common/mini-clist.h>
 
 #include <types/channel.h>
+#include <types/compression.h>
 #include <types/proto_http.h>
 #include <types/proxy.h>
 #include <types/queue.h>
@@ -155,6 +156,8 @@
 	void (*srv_error)(struct session *s,	/* the function to call upon unrecoverable server errors (or NULL) */
 			  struct stream_interface *si);
 	unsigned int uniq_id;			/* unique ID used for the traces */
+	struct comp_algo *comp_algo;		/* HTTP compression algorithm if not NULL */
+	union comp_ctx comp_ctx;		/* HTTP compression context */
 	char *unique_id;			/* custom unique ID */
 };
 
