
directory and GNU autotools setup. Change-Id: I6c59d1297389c9413db0c0b9bdf3b759080bf1b8 Signed-off-by: Ole Troan <ot@cisco.com>
77 lines
3.0 KiB
C
77 lines
3.0 KiB
C
/*
|
|
*------------------------------------------------------------------
|
|
* spp_ctx.h - packet / context definitions
|
|
*
|
|
* Copyright (c) 2007-2014 Cisco and/or its affiliates.
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at:
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*------------------------------------------------------------------
|
|
*/
|
|
|
|
#ifndef __SPP_CTX_H__
|
|
#define __SPP_CTX_H__
|
|
|
|
/* Packet header / data */
|
|
|
|
/* Any change to spp_ctx_t structure should be updated in vnet/buffer.h
|
|
* as well.
|
|
*/
|
|
typedef struct _spp_ctx {
|
|
#ifdef TOBE_PORTED
|
|
/* Following fields are required to handle multibuffer */
|
|
u32 num_buffers; /* Number of buffers part of packet */
|
|
vlib_buffer_t *next_ctx_this_packet;
|
|
|
|
/* Following is used by non-UDP protocols */
|
|
#define SPP_CTX_FEATURE_DATA_SIZE 16
|
|
|
|
u8 feature_data[SPP_CTX_FEATURE_DATA_SIZE];
|
|
#endif
|
|
|
|
union { /* Roddick specific */
|
|
u32 roddick_info;
|
|
struct __tx_pkt_info { /* Used by PI to PI communication for TX */
|
|
u32 uidb_index:16; /* uidb_index to transmit */
|
|
u32 packet_type:2; /* 1-IPv4, 2-Ipv6, - 0,3 - Unused */
|
|
u32 ipv4_defrag:1; /* 0 - Normal, 1 - update first
|
|
* segment size
|
|
* (set by 6rd defrag node)
|
|
*/
|
|
|
|
u32 dst_ip_port_idx:4;/* Index to dst_ip_port_table */
|
|
u32 from_node:4;
|
|
u32 calc_chksum:1;
|
|
u32 reserved:4;
|
|
} tx;
|
|
struct __rx_pkt_info { /* Used by PD / PI communication */
|
|
u32 uidb_index:16; /* uidb_index received in packet */
|
|
u32 packet_type:2; /* 1-IPv4, 2-Ipv6, - 0,3 - Unused */
|
|
u32 icmp_type:1; /* 0-ICMP query type, 1-ICMP error type */
|
|
u32 protocol_type:2; /* 1-TCP, 2-UDP, 3-ICMP, 0 - Unused */
|
|
u32 ipv4_defrag:1; /* 0 - Normal, 1 - update first
|
|
* segment size
|
|
* (set by 6rd defrag node)
|
|
*/
|
|
|
|
u32 direction:1; /* 0-Outside, 1-Inside */
|
|
u32 frag:1; /*IP fragment-1, Otherwise-0*/
|
|
u32 option:1; /* 0-No IP option (v4) present, non-fragHdr
|
|
* option hdr present (v6)
|
|
*/
|
|
u32 df_bit:1; /* IPv4 DF bit copied here */
|
|
u32 reserved1:6;
|
|
} rx;
|
|
} ru;
|
|
} spp_ctx_t;
|
|
|
|
#endif
|