NetworkPkg: Move Network library and drivers from MdeModulePkg to NetworkPkg
Signed-off-by: Liming Gao <liming.gao@intel.com> Cc: Siyuan Fu <siyuan.fu@intel.com> Cc: Jiaxin Wu <jiaxin.wu@intel.com> Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com> Reviewed-by: Siyuan Fu <siyuan.fu@intel.com>
This commit is contained in:
205
NetworkPkg/MnpDxe/MnpVlan.h
Normal file
205
NetworkPkg/MnpDxe/MnpVlan.h
Normal file
@@ -0,0 +1,205 @@
|
||||
/** @file
|
||||
Header file to be included by MnpVlan.c.
|
||||
|
||||
Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __MNP_VLAN_H__
|
||||
#define __MNP_VLAN_H__
|
||||
|
||||
#include "MnpDriver.h"
|
||||
|
||||
extern EFI_VLAN_CONFIG_PROTOCOL mVlanConfigProtocolTemplate;
|
||||
|
||||
|
||||
/**
|
||||
Create a child handle for the VLAN ID.
|
||||
|
||||
@param[in] ImageHandle The driver image handle.
|
||||
@param[in] ControllerHandle Handle of device to bind driver to.
|
||||
@param[in] VlanId The VLAN ID.
|
||||
@param[out] Devicepath Pointer to returned device path for child handle.
|
||||
|
||||
@return The handle of VLAN child or NULL if failed to create VLAN child.
|
||||
|
||||
**/
|
||||
EFI_HANDLE
|
||||
MnpCreateVlanChild (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN UINT16 VlanId,
|
||||
OUT EFI_DEVICE_PATH_PROTOCOL **Devicepath OPTIONAL
|
||||
);
|
||||
|
||||
/**
|
||||
Remove VLAN tag of a packet.
|
||||
|
||||
@param[in, out] MnpDeviceData Pointer to the mnp device context data.
|
||||
@param[in, out] Nbuf Pointer to the NET_BUF to remove VLAN tag.
|
||||
@param[out] VlanId Pointer to the returned VLAN ID.
|
||||
|
||||
@retval TRUE VLAN tag is removed from this packet.
|
||||
@retval FALSE There is no VLAN tag in this packet.
|
||||
|
||||
**/
|
||||
BOOLEAN
|
||||
MnpRemoveVlanTag (
|
||||
IN OUT MNP_DEVICE_DATA *MnpDeviceData,
|
||||
IN OUT NET_BUF *Nbuf,
|
||||
OUT UINT16 *VlanId
|
||||
);
|
||||
|
||||
/**
|
||||
Build the vlan packet to transmit from the TxData passed in.
|
||||
|
||||
@param MnpServiceData Pointer to the mnp service context data.
|
||||
@param TxData Pointer to the transmit data containing the
|
||||
information to build the packet.
|
||||
@param ProtocolType Pointer to the Ethernet protocol type.
|
||||
@param Packet Pointer to record the address of the packet.
|
||||
@param Length Pointer to a UINT32 variable used to record the
|
||||
packet's length.
|
||||
|
||||
**/
|
||||
VOID
|
||||
MnpInsertVlanTag (
|
||||
IN MNP_SERVICE_DATA *MnpServiceData,
|
||||
IN EFI_MANAGED_NETWORK_TRANSMIT_DATA *TxData,
|
||||
OUT UINT16 *ProtocolType,
|
||||
IN OUT UINT8 **Packet,
|
||||
IN OUT UINT32 *Length
|
||||
);
|
||||
|
||||
/**
|
||||
Get VLAN configuration variable.
|
||||
|
||||
@param[in] MnpDeviceData Pointer to the MNP device context data.
|
||||
@param[out] NumberOfVlan Pointer to number of VLAN to be returned.
|
||||
@param[out] VlanVariable Pointer to the buffer to return requested
|
||||
array of VLAN_TCI.
|
||||
|
||||
@retval EFI_SUCCESS The array of VLAN_TCI was returned in VlanVariable
|
||||
and number of VLAN was returned in NumberOfVlan.
|
||||
@retval EFI_NOT_FOUND VLAN configuration variable not found.
|
||||
@retval EFI_OUT_OF_RESOURCES There is not enough pool memory to store the configuration.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
MnpGetVlanVariable (
|
||||
IN MNP_DEVICE_DATA *MnpDeviceData,
|
||||
OUT UINTN *NumberOfVlan,
|
||||
OUT VLAN_TCI **VlanVariable
|
||||
);
|
||||
|
||||
/**
|
||||
Set VLAN configuration variable.
|
||||
|
||||
@param[in] MnpDeviceData Pointer to the MNP device context data.
|
||||
@param[in] NumberOfVlan Number of VLAN in array VlanVariable.
|
||||
@param[in] VlanVariable Pointer to array of VLAN_TCI.
|
||||
|
||||
@retval EFI_SUCCESS The VLAN variable is successfully set.
|
||||
@retval EFI_OUT_OF_RESOURCES There is not enough resource to set the configuration.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
MnpSetVlanVariable (
|
||||
IN MNP_DEVICE_DATA *MnpDeviceData,
|
||||
IN UINTN NumberOfVlan,
|
||||
IN VLAN_TCI *VlanVariable
|
||||
);
|
||||
|
||||
/**
|
||||
Create a VLAN device or modify the configuration parameter of an
|
||||
already-configured VLAN.
|
||||
|
||||
The Set() function is used to create a new VLAN device or change the VLAN
|
||||
configuration parameters. If the VlanId hasn't been configured in the
|
||||
physical Ethernet device, a new VLAN device will be created. If a VLAN with
|
||||
this VlanId is already configured, then related configuration will be updated
|
||||
as the input parameters.
|
||||
|
||||
If VlanId is zero, the VLAN device will send and receive untagged frames.
|
||||
Otherwise, the VLAN device will send and receive VLAN-tagged frames containing the VlanId.
|
||||
If VlanId is out of scope of (0-4094), EFI_INVALID_PARAMETER is returned.
|
||||
If Priority is out of the scope of (0-7), then EFI_INVALID_PARAMETER is returned.
|
||||
If there is not enough system memory to perform the registration, then
|
||||
EFI_OUT_OF_RESOURCES is returned.
|
||||
|
||||
@param[in] This Points to the EFI_VLAN_CONFIG_PROTOCOL.
|
||||
@param[in] VlanId A unique identifier (1-4094) of the VLAN which is being created
|
||||
or modified, or zero (0).
|
||||
@param[in] Priority 3 bit priority in VLAN header. Priority 0 is default value. If
|
||||
VlanId is zero (0), Priority is ignored.
|
||||
|
||||
@retval EFI_SUCCESS The VLAN is successfully configured.
|
||||
@retval EFI_INVALID_PARAMETER One or more of following conditions is TRUE:
|
||||
- This is NULL.
|
||||
- VlanId is an invalid VLAN Identifier.
|
||||
- Priority is invalid.
|
||||
@retval EFI_OUT_OF_RESOURCES There is not enough system memory to perform the registration.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
VlanConfigSet (
|
||||
IN EFI_VLAN_CONFIG_PROTOCOL *This,
|
||||
IN UINT16 VlanId,
|
||||
IN UINT8 Priority
|
||||
);
|
||||
|
||||
/**
|
||||
Find configuration information for specified VLAN or all configured VLANs.
|
||||
|
||||
The Find() function is used to find the configuration information for matching
|
||||
VLAN and allocate a buffer into which those entries are copied.
|
||||
|
||||
@param[in] This Points to the EFI_VLAN_CONFIG_PROTOCOL.
|
||||
@param[in] VlanId Pointer to VLAN identifier. Set to NULL to find all
|
||||
configured VLANs.
|
||||
@param[out] NumberOfVlan The number of VLANs which is found by the specified criteria.
|
||||
@param[out] Entries The buffer which receive the VLAN configuration.
|
||||
|
||||
@retval EFI_SUCCESS The VLAN is successfully found.
|
||||
@retval EFI_INVALID_PARAMETER One or more of following conditions is TRUE:
|
||||
- This is NULL.
|
||||
- Specified VlanId is invalid.
|
||||
@retval EFI_NOT_FOUND No matching VLAN is found.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
VlanConfigFind (
|
||||
IN EFI_VLAN_CONFIG_PROTOCOL *This,
|
||||
IN UINT16 *VlanId OPTIONAL,
|
||||
OUT UINT16 *NumberOfVlan,
|
||||
OUT EFI_VLAN_FIND_DATA **Entries
|
||||
);
|
||||
|
||||
/**
|
||||
Remove the configured VLAN device.
|
||||
|
||||
The Remove() function is used to remove the specified VLAN device.
|
||||
If the VlanId is out of the scope of (0-4094), EFI_INVALID_PARAMETER is returned.
|
||||
If specified VLAN hasn't been previously configured, EFI_NOT_FOUND is returned.
|
||||
|
||||
@param[in] This Points to the EFI_VLAN_CONFIG_PROTOCOL.
|
||||
@param[in] VlanId Identifier (0-4094) of the VLAN to be removed.
|
||||
|
||||
@retval EFI_SUCCESS The VLAN is successfully removed.
|
||||
@retval EFI_INVALID_PARAMETER One or more of following conditions is TRUE:
|
||||
- This is NULL.
|
||||
- VlanId is an invalid parameter.
|
||||
@retval EFI_NOT_FOUND The to-be-removed VLAN does not exist.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
VlanConfigRemove (
|
||||
IN EFI_VLAN_CONFIG_PROTOCOL *This,
|
||||
IN UINT16 VlanId
|
||||
);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user