X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Freplication.h;h=531a61c2fd1d7f22b8ea273567a0beff92f7ad3e;hb=89541992000433b743cbbe8cb396faab42bcf6ae;hp=5dc554c97b34f47984f896b1e7e49891234fa1fb;hpb=7cd468a3d7dee7d6c92f69a0bb7061ae208ec727;p=vpp.git diff --git a/src/vnet/replication.h b/src/vnet/replication.h index 5dc554c97b3..531a61c2fd1 100644 --- a/src/vnet/replication.h +++ b/src/vnet/replication.h @@ -27,8 +27,8 @@ typedef struct { /* The entire vnet buffer header restored for each replica */ - u8 vnet_buffer[32]; /* 16B aligned to allow vector unit copy */ - u8 reserved[32]; /* space for future expansion of vnet buffer header */ + u8 vnet_buffer[40]; /* 16B aligned to allow vector unit copy */ + u8 reserved[24]; /* space for future expansion of vnet buffer header */ /* feature state used during this replication */ u64 feature_replicas; /* feature's id for its set of replicas */ @@ -43,12 +43,13 @@ typedef struct /* data saved from the original packet and restored for each replica */ u64 l2_header[3]; /* 24B (must be at least 22B for l2 packets) */ + u32 flags; /* vnet buffer flags */ u16 ip_tos; /* v4 and v6 */ u16 ip4_checksum; /* needed for v4 only */ /* data saved from the vlib buffer header and restored for each replica */ i16 current_data; /* offset of first byte of packet in packet data */ - u8 pad[6]; /* to 64B */ + u8 pad[2]; /* to 64B */ u8 l2_packet; /* flag for l2 vs l3 packet data */ } replication_context_t; /* 128B */ @@ -100,7 +101,7 @@ replication_get_ctx (vlib_buffer_t * b0) replication_main_t *rm = &replication_main; return replication_is_recycled (b0) ? - pool_elt_at_index (rm->contexts[os_get_cpu_number ()], + pool_elt_at_index (rm->contexts[vlib_get_thread_index ()], b0->recycle_count) : 0; }