From b02475c53b3ca857c45eb5e17d12fdf233a9dac8 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Fri, 25 Jan 2013 16:22:07 +0900 Subject: User-Space MPLS actions and matches This patch implements use-space datapath and non-datapath code to match and use the datapath API set out in Leo Alterman's patch "user-space datapath: Add basic MPLS support to kernel". The resulting MPLS implementation supports: * Pushing a single MPLS label * Poping a single MPLS label * Modifying an MPLS lable using set-field or load actions that act on the label value, tc and bos bit. * There is no support for manipulating the TTL this is considered future work. The single-level push pop limitation is implemented by processing push, pop and set-field/load actions in order and discarding information that would require multiple levels of push/pop to be supported. e.g. push,push -> the first push is discarded pop,pop -> the first pop is discarded This patch is based heavily on work by Ravi K. Cc: Ravi K Reviewed-by: Isaku Yamahata Signed-off-by: Simon Horman Signed-off-by: Ben Pfaff --- tests/test-bundle.c | 1 + 1 file changed, 1 insertion(+) (limited to 'tests/test-bundle.c') diff --git a/tests/test-bundle.c b/tests/test-bundle.c index aa8b6f0f4..f5b24b4a3 100644 --- a/tests/test-bundle.c +++ b/tests/test-bundle.c @@ -137,6 +137,7 @@ main(int argc, char *argv[]) for (i = 0; i < N_FLOWS; i++) { random_bytes(&flows[i], sizeof flows[i]); memset(flows[i].zeros, 0, sizeof flows[i].zeros); + flows[i].mpls_depth = 0; flows[i].regs[0] = OFPP_NONE; } -- cgit v1.2.1