REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the NetworkPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Maciej Rabeda <maciej.rabeda@linux.intel.com>
		
			
				
	
	
		
			191 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			191 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Multicast Listener Discovery support routines.
 | |
| 
 | |
|   Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
 | |
| 
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef __EFI_IP6_MLD_H__
 | |
| #define __EFI_IP6_MLD_H__
 | |
| 
 | |
| #define IP6_UNSOLICITED_REPORT_INTERVAL  10
 | |
| 
 | |
| #pragma pack(1)
 | |
| typedef struct {
 | |
|   IP6_ICMP_HEAD       Head;
 | |
|   UINT16              MaxRespDelay;
 | |
|   UINT16              Reserved;
 | |
|   EFI_IPv6_ADDRESS    Group;
 | |
| } IP6_MLD_HEAD;
 | |
| #pragma pack()
 | |
| 
 | |
| //
 | |
| // The status of multicast group. It isn't necessary to maintain
 | |
| // explicit state of host state diagram. A group with finity
 | |
| // DelayTime (less than 0xffffffff) is in "delaying listener" state. otherwise, it is in
 | |
| // "idle listener" state.
 | |
| //
 | |
| typedef struct {
 | |
|   LIST_ENTRY          Link;
 | |
|   INTN                RefCnt;
 | |
|   EFI_IPv6_ADDRESS    Address;
 | |
|   UINT32              DelayTimer;
 | |
|   BOOLEAN             SendByUs;
 | |
|   EFI_MAC_ADDRESS     Mac;
 | |
| } IP6_MLD_GROUP;
 | |
| 
 | |
| //
 | |
| // The MLD status. Each IP6 service instance has a MLD_SERVICE_DATA
 | |
| // attached. The Mldv1QuerySeen remember whether the server on this
 | |
| // connected network is v1 or v2.
 | |
| //
 | |
| typedef struct {
 | |
|   INTN          Mldv1QuerySeen;
 | |
|   LIST_ENTRY    Groups;
 | |
| } IP6_MLD_SERVICE_DATA;
 | |
| 
 | |
| /**
 | |
|   Search a IP6_MLD_GROUP list entry node from a list array.
 | |
| 
 | |
|   @param[in]       IpSb          Points to an IP6 service binding instance.
 | |
|   @param[in]       MulticastAddr The IPv6 multicast address to be searched.
 | |
| 
 | |
|   @return The found IP6_ML_GROUP list entry or NULL.
 | |
| 
 | |
| **/
 | |
| IP6_MLD_GROUP *
 | |
| Ip6FindMldEntry (
 | |
|   IN IP6_SERVICE       *IpSb,
 | |
|   IN EFI_IPv6_ADDRESS  *MulticastAddr
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Init the MLD data of the IP6 service instance, configure
 | |
|   MNP to receive ALL SYSTEM multicasts.
 | |
| 
 | |
|   @param[in]  IpSb              The IP6 service whose MLD is to be initialized.
 | |
| 
 | |
|   @retval EFI_OUT_OF_RESOURCES  There are not sufficient resources to complete the
 | |
|                                 operation.
 | |
|   @retval EFI_SUCCESS           The MLD module successfully initialized.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| Ip6InitMld (
 | |
|   IN IP6_SERVICE  *IpSb
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Join the multicast group on behalf of this IP6 service binding instance.
 | |
| 
 | |
|   @param[in]  IpSb               The IP6 service binding instance.
 | |
|   @param[in]  Interface          Points to an IP6_INTERFACE structure.
 | |
|   @param[in]  Address            The group address to join.
 | |
| 
 | |
|   @retval EFI_SUCCESS            Successfully joined the multicast group.
 | |
|   @retval EFI_OUT_OF_RESOURCES   Failed to allocate resources.
 | |
|   @retval Others                 Failed to join the multicast group.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| Ip6JoinGroup (
 | |
|   IN IP6_SERVICE       *IpSb,
 | |
|   IN IP6_INTERFACE     *Interface,
 | |
|   IN EFI_IPv6_ADDRESS  *Address
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Leave the IP6 multicast group.
 | |
| 
 | |
|   @param[in]  IpSb               The IP6 service binding instance.
 | |
|   @param[in]  Address            The group address to leave.
 | |
| 
 | |
|   @retval EFI_NOT_FOUND          The IP6 service instance isn't in the group.
 | |
|   @retval EFI_SUCCESS            Successfully left the multicast group.
 | |
|   @retval Others                 Failed to leave the multicast group.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| Ip6LeaveGroup (
 | |
|   IN IP6_SERVICE       *IpSb,
 | |
|   IN EFI_IPv6_ADDRESS  *Address
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Worker function for EfiIp6Groups(). The caller
 | |
|   should verify that the parameters are valid.
 | |
| 
 | |
|   @param[in]  IpInstance        The IP6 child to change the setting.
 | |
|   @param[in]  JoinFlag          TRUE to join the group, otherwise leave it.
 | |
|   @param[in]  GroupAddress      The target group address. If NULL, leave all
 | |
|                                 the group addresses.
 | |
| 
 | |
|   @retval EFI_ALREADY_STARTED   Wants to join the group, but is already a member of it.
 | |
|   @retval EFI_OUT_OF_RESOURCES  Failed to allocate some resources.
 | |
|   @retval EFI_DEVICE_ERROR      Failed to set the group configuration.
 | |
|   @retval EFI_SUCCESS           Successfully updated the group setting.
 | |
|   @retval EFI_NOT_FOUND         Tried to leave a group of whom it isn't a member.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| Ip6Groups (
 | |
|   IN IP6_PROTOCOL      *IpInstance,
 | |
|   IN BOOLEAN           JoinFlag,
 | |
|   IN EFI_IPv6_ADDRESS  *GroupAddress       OPTIONAL
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Process the Multicast Listener Query message.
 | |
| 
 | |
|   @param[in]  IpSb               The IP service that received the packet.
 | |
|   @param[in]  Head               The IP head of the MLD query packet.
 | |
|   @param[in]  Packet             The content of the MLD query packet with IP head
 | |
|                                  removed.
 | |
| 
 | |
|   @retval EFI_SUCCESS            The MLD query packet processed successfully.
 | |
|   @retval EFI_INVALID_PARAMETER  The packet is invalid.
 | |
|   @retval Others                 Failed to process the packet.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| Ip6ProcessMldQuery (
 | |
|   IN IP6_SERVICE     *IpSb,
 | |
|   IN EFI_IP6_HEADER  *Head,
 | |
|   IN NET_BUF         *Packet
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Process the Multicast Listener Report message.
 | |
| 
 | |
|   @param[in]  IpSb               The IP service that received the packet.
 | |
|   @param[in]  Head               The IP head of the MLD report packet.
 | |
|   @param[in]  Packet             The content of the MLD report packet with IP head
 | |
|                                  removed.
 | |
| 
 | |
|   @retval EFI_SUCCESS            The MLD report packet processed successfully.
 | |
|   @retval EFI_INVALID_PARAMETER  The packet is invalid.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| Ip6ProcessMldReport (
 | |
|   IN IP6_SERVICE     *IpSb,
 | |
|   IN EFI_IP6_HEADER  *Head,
 | |
|   IN NET_BUF         *Packet
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   The heartbeat timer of the MLD module. It sends out solicited MLD report when
 | |
|   DelayTimer expires.
 | |
| 
 | |
|   @param[in]  IpSb              The IP6 service binding instance.
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| Ip6MldTimerTicking (
 | |
|   IN IP6_SERVICE  *IpSb
 | |
|   );
 | |
| 
 | |
| #endif
 |