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.
18
#define __PACKETIO_H_ 1
20
typedef union _OVS_PACKET_HDR_INFO OVS_PACKET_HDR_INFO;
23
* Data structures and utility functions to help manage a list of packets to be
24
* completed (dropped).
26
typedef struct OvsCompletionList {
27
PNET_BUFFER_LIST dropNbl;
28
PNET_BUFFER_LIST *dropNblNext;
29
POVS_SWITCH_CONTEXT switchContext;
30
ULONG sendCompleteFlags;
33
VOID OvsInitCompletionList(OvsCompletionList *completionList,
34
POVS_SWITCH_CONTEXT switchContext,
35
ULONG sendCompleteFlags);
36
VOID OvsAddPktCompletionList(OvsCompletionList *completionList,
38
NDIS_SWITCH_PORT_ID sourcePort,
39
PNET_BUFFER_LIST netBufferList,
40
UINT32 netBufferListCount,
41
PNDIS_STRING filterReason);
45
* Functions related to packet processing.
47
VOID OvsSendNBLIngress(POVS_SWITCH_CONTEXT switchContext,
48
PNET_BUFFER_LIST netBufferLists,
51
NDIS_STATUS OvsActionsExecute(POVS_SWITCH_CONTEXT switchContext,
52
OvsCompletionList *completionList,
53
PNET_BUFFER_LIST curNbl, UINT32 srcVportNo,
54
ULONG sendFlags, OvsFlowKey *key, UINT64 *hash,
55
OVS_PACKET_HDR_INFO *layers,
56
const PNL_ATTR actions, int actionsLen);
58
VOID OvsLookupFlowOutput(POVS_SWITCH_CONTEXT switchContext,
59
VOID *compList, PNET_BUFFER_LIST curNbl);
61
#endif /* __PACKETIO_H_ */