TianoCore EDK2 master
|
Go to the source code of this file.
Variables | |
VLAN_DEVICE_PATH | mVlanDevicePathTemplate |
EFI_VLAN_CONFIG_PROTOCOL | mVlanConfigProtocolTemplate |
VLAN Config Protocol implementation and VLAN packet process routine.
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file MnpVlan.c.
EFI_STATUS MnpCheckVlanVariable | ( | IN MNP_DEVICE_DATA * | MnpDeviceData, |
IN VLAN_TCI * | Buffer, | ||
IN UINTN | NumberOfVlan, | ||
OUT UINTN * | NewNumberOfVlan | ||
) |
Check VLAN configuration variable and delete the duplicative content if has identical Vlan ID.
[in] | MnpDeviceData | Pointer to the MNP device context data. |
[in] | Buffer | Pointer to the buffer contains the array of VLAN_TCI. |
[in] | NumberOfVlan | Pointer to number of VLAN. |
[out] | NewNumberOfVlan | Pointer to number of unique VLAN. |
EFI_SUCCESS | The VLAN variable is successfully checked. |
EFI_OUT_OF_RESOURCES | There is not enough resource to set the configuration. |
EFI_HANDLE MnpCreateVlanChild | ( | IN EFI_HANDLE | ImageHandle, |
IN EFI_HANDLE | ControllerHandle, | ||
IN UINT16 | VlanId, | ||
OUT EFI_DEVICE_PATH_PROTOCOL **Devicepath | OPTIONAL | ||
) |
Create a child handle for the VLAN ID.
[in] | ImageHandle | The driver image handle. |
[in] | ControllerHandle | Handle of device to bind driver to. |
[in] | VlanId | The VLAN ID. |
[out] | Devicepath | Pointer to returned device path for child handle. |
EFI_STATUS MnpGetVlanVariable | ( | IN MNP_DEVICE_DATA * | MnpDeviceData, |
OUT UINTN * | NumberOfVlan, | ||
OUT VLAN_TCI ** | VlanVariable | ||
) |
Get VLAN configuration variable.
[in] | MnpDeviceData | Pointer to the MNP device context data. |
[out] | NumberOfVlan | Pointer to number of VLAN to be returned. |
[out] | VlanVariable | Pointer to the buffer to return requested array of VLAN_TCI. |
EFI_SUCCESS | The array of VLAN_TCI was returned in VlanVariable and number of VLAN was returned in NumberOfVlan. |
EFI_NOT_FOUND | VLAN configuration variable not found. |
EFI_OUT_OF_RESOURCES | There is not enough pool memory to store the configuration. |
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 | ||
) |
Build the vlan packet to transmit from the TxData passed in.
MnpServiceData | Pointer to the mnp service context data. |
TxData | Pointer to the transmit data containing the information to build the packet. |
ProtocolType | Pointer to the Ethernet protocol type. |
Packet | Pointer to record the address of the packet. |
Length | Pointer to a UINT32 variable used to record the packet's length. |
BOOLEAN MnpRemoveVlanTag | ( | IN OUT MNP_DEVICE_DATA * | MnpDeviceData, |
IN OUT NET_BUF * | Nbuf, | ||
OUT UINT16 * | VlanId | ||
) |
Remove VLAN tag from a packet.
[in,out] | MnpDeviceData | Pointer to the mnp device context data. |
[in,out] | Nbuf | Pointer to the NET_BUF to remove VLAN tag. |
[out] | VlanId | Pointer to the returned VLAN ID. |
TRUE | VLAN tag is removed from this packet. |
FALSE | There is no VLAN tag in this packet. |
EFI_STATUS MnpSetVlanVariable | ( | IN MNP_DEVICE_DATA * | MnpDeviceData, |
IN UINTN | NumberOfVlan, | ||
IN VLAN_TCI * | VlanVariable | ||
) |
Set VLAN configuration variable.
[in] | MnpDeviceData | Pointer to the MNP device context data. |
[in] | NumberOfVlan | Number of VLAN in array VlanVariable. |
[in] | VlanVariable | Pointer to array of VLAN_TCI. |
EFI_SUCCESS | The VLAN variable is successfully set. |
EFI_OUT_OF_RESOURCES | There is not enough resource to set the configuration. |
EFI_STATUS EFIAPI VlanConfigFind | ( | IN EFI_VLAN_CONFIG_PROTOCOL * | This, |
IN UINT16 *VlanId | OPTIONAL, | ||
OUT UINT16 * | NumberOfVlan, | ||
OUT EFI_VLAN_FIND_DATA ** | Entries | ||
) |
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.
[in] | This | Points to the EFI_VLAN_CONFIG_PROTOCOL. |
[in] | VlanId | Pointer to VLAN identifier. Set to NULL to find all configured VLANs. |
[out] | NumberOfVlan | The number of VLANs which is found by the specified criteria. |
[out] | Entries | The buffer which receive the VLAN configuration. |
EFI_SUCCESS | The VLAN is successfully found. |
EFI_INVALID_PARAMETER | One or more of following conditions is TRUE:
|
EFI_NOT_FOUND | No matching VLAN is found. |
EFI_STATUS EFIAPI VlanConfigRemove | ( | IN EFI_VLAN_CONFIG_PROTOCOL * | This, |
IN UINT16 | VlanId | ||
) |
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.
[in] | This | Points to the EFI_VLAN_CONFIG_PROTOCOL. |
[in] | VlanId | Identifier (0-4094) of the VLAN to be removed. |
EFI_SUCCESS | The VLAN is successfully removed. |
EFI_INVALID_PARAMETER | One or more of following conditions is TRUE:
|
EFI_NOT_FOUND | The to-be-removed VLAN does not exist. |
EFI_STATUS EFIAPI VlanConfigSet | ( | IN EFI_VLAN_CONFIG_PROTOCOL * | This, |
IN UINT16 | VlanId, | ||
IN UINT8 | Priority | ||
) |
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.
[in] | This | Points to the EFI_VLAN_CONFIG_PROTOCOL. |
[in] | VlanId | A unique identifier (1-4094) of the VLAN which is being created or modified, or zero (0). |
[in] | Priority | 3 bit priority in VLAN header. Priority 0 is default value. If VlanId is zero (0), Priority is ignored. |
EFI_SUCCESS | The VLAN is successfully configured. |
EFI_INVALID_PARAMETER | One or more of following conditions is TRUE:
|
EFI_OUT_OF_RESOURCES | There is not enough system memory to perform the registration. |
EFI_VLAN_CONFIG_PROTOCOL mVlanConfigProtocolTemplate |
VLAN_DEVICE_PATH mVlanDevicePathTemplate |