# Udp6Dxe

| Index | Module | Size | Phase |
|-------|--------|------|-------|
| 0153 | Udp6Dxe | 40,192 bytes (39.2 KB) | DXE |

## Overview

UDPv6 Network Stack DXE Driver from AmiNetworkPkg/UefiNetworkStack/Ipv6/Udp6Dxe/. Implements EFI_UDP6_SERVICE_BINDING_PROTOCOL and EFI_UDP6_PROTOCOL to provide UDP datagram services over IPv6. Handles datagram transmission/reception, multicast group management, port-based filtering, promiscuous mode, and ICMPv6 error reporting. Sits on top of the Ip6Dxe driver and uses the IpIo (IP I/O) library for IP-layer integration.

## Key Functions

- **Udp6DriverEntryPoint**: UEFI driver entry point; installs driver binding and component name protocols, initializes random port base.
- **Udp6DriverBindingSupported/Start/Stop**: Standard UEFI driver binding for UDP6 service management.
- **Udp6ServiceBindingCreateChild/DestroyChild**: Create and destroy UDP6 child instances with per-instance protocol interfaces.
- **Udp6Configure** (0x253C): Configure UDP6 instance with station address, remote address, port filters, and timeouts.
- **Udp6Transmit** (0x29A4): Build UDP header, compute checksum, send via IpIo/Ip6.
- **Udp6Receive** (0x2CAC): Register receive token for asynchronous datagram delivery.
- **Udp6Groups** (0x290C): Join/leave IPv6 multicast groups.
- **Udp6DgramRcvd**: Datagram receive callback; matches packets to instances by port/address, delivers via token.

## Dependencies

- **Ip6Dxe**: EFI_IP6_PROTOCOL and EFI_IP6_SERVICE_BINDING_PROTOCOL (via IpIo library)
- **DxeNetLib**: NET_BUF, NetMap, linked list, and checksum utilities
- **DxeUdpIoLib**: IpIo library for IP-layer abstraction
- **Consumed by**: Dhcp6Dxe, HttpBootDxe, DnsDxe, TcpDxe

## Platform

Intel Purley (HR650X server platform), x86-64, PE32+ format, 6 sections (.text, .rdata, .data, section_3, .xdata, .reloc)