# `ExSDP.ConnectionData`
[🔗](https://github.com/membraneframework/ex_sdp/blob/v1.2.0/lib/ex_sdp/connection_data.ex#L1)

This module represents the Connection Information.

The address can be represented by either:
 - IPv4 address
 - IPv6 address
 - FQDN (Fully Qualified Domain Name)

In the case of IPv4 and IPv6 multicast addresses there can be more than one
parsed from single SDP field if it is described using slash notation.

Sessions using an IPv4 multicast connection address MUST also have
a time to live (TTL) value present in addition to the multicast
address.

For more details please see [RFC4566 Section 5.7](https://tools.ietf.org/html/rfc4566#section-5.7)

# `reason`

```elixir
@type reason() ::
  :invalid_addrtype
  | :invalid_address
  | :ip6_cannot_have_ttl
  | :invalid_ttl_or_address_count
```

# `t`

```elixir
@type t() :: %ExSDP.ConnectionData{
  address: ExSDP.Address.t(),
  address_count: pos_integer() | nil,
  network_type: binary(),
  ttl: 0..255 | nil
}
```

# `parse`

```elixir
@spec parse(binary()) :: {:ok, t()} | {:error, reason()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
