2 * Copyright (c) 2014 VMware, Inc.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at:
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
21 // OVS_TUNNEL_PENDED_PACKET is the object type we used to store all information
22 // needed for out-of-band packet modification and re-injection. This type
23 // also points back to the flow context the packet belongs to.
25 typedef struct OVS_TUNNEL_PENDED_PACKET_
27 /* Common fields for inbound and outbound traffic */
28 NET_BUFFER_LIST *netBufferList;
31 UINT32 transportHeaderSize;
32 FWPS_CLASSIFY_OUT *classifyOut;
33 } OVS_TUNNEL_PENDED_PACKET;
35 /* Shared global data. */
37 extern UINT16 configNewDestPort;
39 extern UINT32 gCalloutIdV4;
42 // Shared function prototypes
44 VOID OvsTunnelClassify(const FWPS_INCOMING_VALUES *inFixedValues,
45 const FWPS_INCOMING_METADATA_VALUES *inMetaValues,
47 const VOID *classifyContext,
48 const FWPS_FILTER *filter,
50 FWPS_CLASSIFY_OUT *classifyOut);
53 NTSTATUS OvsTunnelNotify(FWPS_CALLOUT_NOTIFY_TYPE notifyType,
54 const GUID *filterKey,
55 const FWPS_FILTER *filter);
57 #endif /* __TUNNEL_H_ */