Port Channel
Port Channel interfaces provide link aggregation capabilities that combine multiple physical Ethernet interfaces into a single logical interface, delivering increased bandwidth, redundancy, and load distribution across member interfaces using protocols such as LACP (Link Aggregation Control Protocol) or static configuration. They enable seamless failover when individual member links fail while maintaining session continuity, and support both Layer 2 switching with VLAN trunking and Layer 3 routing with comprehensive protocol support including OSPF, BGP, and spanning tree participation. Port Channels are fundamental for building resilient network infrastructures, enabling high-bandwidth connections between switches, servers, and storage systems while providing the flexibility to scale bandwidth incrementally and ensure network availability through redundant path management.
Diagram
Section titled “Diagram”Classes
Section titled “Classes”interfaces (iosxe.devices.configuration)
Section titled “interfaces (iosxe.devices.configuration)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| port_channels | List | [port_channels] | No |
port_channels (iosxe.devices.configuration.interfaces)
Section titled “port_channels (iosxe.devices.configuration.interfaces)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| id | Integer | Yes | ||
| interface_groups | List | String | No | |
| description | String | No | ||
| shutdown | Boolean | true, false | No | |
| vrf_forwarding | String | No | ||
| ipv4 | Class | [ipv4] | No | |
| ipv6 | Class | [ipv6] | No | |
| bfd | Class | [bfd] | No | |
| spanning_tree | Class | [spanning_tree] | No | |
| arp_timeout | Integer | min: 0, max: 2147483 | No | |
| load_interval | Integer | min: 30, max: 600 | No | |
| snmp_trap_link_status | Boolean | true, false | No | |
| logging_event_link_status | Boolean | true, false | No | |
| mpls | Class | [mpls] | No | |
| ospf | Class | [ospf] | No | |
| ospfv3 | Class | [ospfv3] | No | |
| pim | Class | [pim] | No | |
| igmp | Class | [igmp] | No | |
| switchport | Class | [switchport] | No | |
| subinterfaces | List | [subinterfaces] | No | |
| auto_qos | Class | [auto_qos] | No | |
| negotiation_auto | Boolean | true, false | No |
ipv4 (iosxe.devices.configuration.interfaces.port_channels)
Section titled “ipv4 (iosxe.devices.configuration.interfaces.port_channels)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| address | IP | No | ||
| address_mask | IP | No | ||
| proxy_arp | Boolean | true, false | No | |
| arp_inspection_trust | Boolean | true, false | No | |
| arp_inspection_limit_rate | Integer | min: 0, max: 4294967295 | No | |
| dhcp_snooping_trust | Boolean | true, false | No | |
| dhcp_relay_source_interface_type | Choice | Loopback, Vlan, GigabitEthernet, FiveGigabitEthernet, TenGigabitEthernet, FortyGigabitEthernet, HundredGigabitEthernet, PortChannel | No | |
| dhcp_relay_source_interface_id | Any | String or Integer[min: 0] | No | |
| helper_addresses | List | [helper_addresses] | No | |
| access_group_in | String | No | ||
| access_group_out | String | No | ||
| flow_monitors | List | [flow_monitors] | No | |
| redirects | Boolean | true, false | No | |
| unreachables | Boolean | true, false | No | |
| unnumbered_interface_type | Choice | Loopback, Vlan, GigabitEthernet, FiveGigabitEthernet, TenGigabitEthernet, FortyGigabitEthernet, HundredGigabitEthernet, PortChannel | No | |
| unnumbered_interface_id | Any | String or Integer[min: 0] | No | |
| nat_inside | Boolean | true, false | No | |
| nat_outside | Boolean | true, false | No |
ipv6 (iosxe.devices.configuration.interfaces.port_channels)
Section titled “ipv6 (iosxe.devices.configuration.interfaces.port_channels)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| enable | Boolean | true, false | No | |
| addresses | List | [addresses] | No | |
| link_local_addresses | List | IP | No | |
| address_autoconfig_default | Boolean | true, false | No | |
| address_dhcp | Boolean | true, false | No | |
| mtu | Integer | min: 1280, max: 9976 | No | |
| nd_ra_suppress_all | Boolean | true, false | No | |
| flow_monitors | List | [flow_monitors] | No | |
| pim | Class | [pim] | No |
bfd (iosxe.devices.configuration.interfaces.port_channels)
Section titled “bfd (iosxe.devices.configuration.interfaces.port_channels)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| template | String | No | ||
| enable | Boolean | true, false | No | |
| local_address | String | No | ||
| interval | Integer | min: 50, max: 9999 | No | |
| interval_min_rx | Integer | min: 50, max: 9999 | No | |
| interval_multiplier | Integer | min: 3, max: 50 | No | |
| echo | Boolean | true, false | No |
spanning_tree (iosxe.devices.configuration.interfaces.port_channels)
Section titled “spanning_tree (iosxe.devices.configuration.interfaces.port_channels)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| guard | Choice | loop, none, root | No | |
| link_type | Choice | shared, point-to-point | No | |
| portfast_trunk | Boolean | true, false | No |
mpls (iosxe.devices.configuration.interfaces.port_channels)
Section titled “mpls (iosxe.devices.configuration.interfaces.port_channels)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| ip | Boolean | true, false | No | |
| mtu | Integer | No |
ospf (iosxe.devices.configuration.interfaces.port_channels)
Section titled “ospf (iosxe.devices.configuration.interfaces.port_channels)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| cost | Integer | min: 1, max: 65535 | No | |
| dead_interval | Integer | min: 1, max: 65535 | No | |
| hello_interval | Integer | min: 1, max: 65535 | No | |
| mtu_ignore | Boolean | true, false | No | |
| network_type | Choice | broadcast, non-broadcast, point-to-multipoint, point-to-point | No | |
| priority | Integer | min: 0, max: 255 | No | |
| ttl_security_hops | Integer | min: 1, max: 254 | No | |
| process_ids | List | [process_ids] | No | |
| message_digest_keys | List | [message_digest_keys] | No |
ospfv3 (iosxe.devices.configuration.interfaces.port_channels)
Section titled “ospfv3 (iosxe.devices.configuration.interfaces.port_channels)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| network_type | Choice | broadcast, non-broadcast, point-to-multipoint, point-to-point | No | |
| cost | Integer | min: 1, max: 65535 | No |
pim (iosxe.devices.configuration.interfaces.port_channels)
Section titled “pim (iosxe.devices.configuration.interfaces.port_channels)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| passive | Boolean | true, false | No | |
| dense_mode | Boolean | true, false | No | |
| sparse_mode | Boolean | true, false | No | |
| sparse_dense_mode | Boolean | true, false | No | |
| bfd | Boolean | true, false | No | |
| border | Boolean | true, false | No | |
| bsr_border | Boolean | true, false | No | |
| dr_priority | Integer | min: 0, max: 4294967294 | No |
igmp (iosxe.devices.configuration.interfaces.port_channels)
Section titled “igmp (iosxe.devices.configuration.interfaces.port_channels)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| version | Integer | min: 1, max: 3 | No |
switchport (iosxe.devices.configuration.interfaces.port_channels)
Section titled “switchport (iosxe.devices.configuration.interfaces.port_channels)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| enable | Boolean | true, false | No | |
| mode | Choice | access, dot1q-tunnel, private-vlan-trunk, private-vlan-host, private-vlan-promiscuous, trunk | No | |
| nonegotiate | Boolean | true, false | No | |
| access_vlan | Integer | min: 1, max: 4094 | No | |
| trunk_allowed_vlans | Class | [trunk_allowed_vlans] | No | |
| trunk_native_vlan_tag | Boolean | true, false | No | |
| trunk_native_vlan_id | Integer | min: 1, max: 4094 | No | |
| host | Boolean | true, false | No |
subinterfaces (iosxe.devices.configuration.interfaces.port_channels)
Section titled “subinterfaces (iosxe.devices.configuration.interfaces.port_channels)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| id | String | Yes | ||
| description | String | No | ||
| shutdown | Boolean | true, false | No | |
| vrf_forwarding | String | No | ||
| ipv4 | Class | [ipv4] | No | |
| ipv6 | Class | [ipv6] | No | |
| bfd | Class | [bfd] | No | |
| encapsulation_dot1q_vlan_id | Integer | min: 1, max: 4094 | No | |
| arp_timeout | Integer | min: 0, max: 2147483 | No | |
| auto_qos | Class | [auto_qos] | No | |
| mpls | Class | [mpls] | No | |
| ospf | Class | [ospf] | No | |
| ospfv3 | Class | [ospfv3] | No | |
| pim | Class | [pim] | No | |
| igmp | Class | [igmp] | No |
auto_qos (iosxe.devices.configuration.interfaces.port_channels)
Section titled “auto_qos (iosxe.devices.configuration.interfaces.port_channels)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| classify | Boolean | true, false | No | |
| classify_police | Boolean | true, false | No | |
| trust | Boolean | true, false | No | |
| trust_cos | Boolean | true, false | No | |
| trust_dscp | Boolean | true, false | No | |
| video_cts | Boolean | true, false | No | |
| video_ip_camera | Boolean | true, false | No | |
| video_media_player | Boolean | true, false | No | |
| voip | Boolean | true, false | No | |
| voip_cisco_phone | Boolean | true, false | No | |
| voip_cisco_softphone | Boolean | true, false | No | |
| voip_trust | Boolean | true, false | No | |
| trust_device | Choice | cisco-phone, cts, ip-camera, media-player | No |
helper_addresses (iosxe.devices.configuration.interfaces.port_channels.ipv4)
Section titled “helper_addresses (iosxe.devices.configuration.interfaces.port_channels.ipv4)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| address | IP | Yes | ||
| global | Boolean | true, false | No | |
| vrf | String | No |
flow_monitors (iosxe.devices.configuration.interfaces.port_channels.ipv4)
Section titled “flow_monitors (iosxe.devices.configuration.interfaces.port_channels.ipv4)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| direction | Choice | input, output | Yes |
addresses (iosxe.devices.configuration.interfaces.port_channels.ipv6)
Section titled “addresses (iosxe.devices.configuration.interfaces.port_channels.ipv6)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| prefix | IP | Yes | ||
| eui_64 | Boolean | true, false | No |
pim (iosxe.devices.configuration.interfaces.port_channels.ipv6)
Section titled “pim (iosxe.devices.configuration.interfaces.port_channels.ipv6)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| pim | Boolean | true, false | No | |
| bfd | Boolean | true, false | No | |
| bsr_border | Boolean | true, false | No | |
| dr_priority | Integer | min: 0, max: 4294967295 | No |
process_ids (iosxe.devices.configuration.interfaces.port_channels.ospf)
Section titled “process_ids (iosxe.devices.configuration.interfaces.port_channels.ospf)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| id | Integer | min: 1, max: 65535 | No | |
| areas | List | Any[String or Integer[min: 0]] | No |
message_digest_keys (iosxe.devices.configuration.interfaces.port_channels.ospf)
Section titled “message_digest_keys (iosxe.devices.configuration.interfaces.port_channels.ospf)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| id | Integer | min: 1, max: 255 | Yes | |
| md5_auth_key | String | No | ||
| md5_auth_type | Choice | 0, 7 | No |
trunk_allowed_vlans (iosxe.devices.configuration.interfaces.port_channels.switchport)
Section titled “trunk_allowed_vlans (iosxe.devices.configuration.interfaces.port_channels.switchport)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| ids | List | Integer[min: 1, max: 4094] | No | |
| ranges | List | [ranges] | No |
ranges (iosxe.devices.configuration.interfaces.port_channels.switchport.trunk_allowed_vlans)
Section titled “ranges (iosxe.devices.configuration.interfaces.port_channels.switchport.trunk_allowed_vlans)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| from | Integer | min: 1, max: 4094 | Yes | |
| to | Integer | min: 1, max: 4094 | Yes |
Examples
Section titled “Examples”iosxe: devices: - name: Device1 configuration: interfaces: port_channels: - id: 1 description: Layer 3 Port Channel to Core shutdown: false vrf_forwarding: PRODUCTION ipv4: address: 192.168.10.1 address_mask: 255.255.255.252 proxy_arp: false redirects: false unreachables: false ipv6: enable: true addresses: - prefix: 2001:db8:10::1/64 link_local_addresses: - fe80::1 bfd: enable: true interval: 100 interval_multiplier: 3 interval_min_rx: 100 ospf: cost: 10 network_type: point-to-point process_ids: - id: 1 areas: - "0" igmp: version: 2 - id: 10 description: Layer 2 Trunk to Access Switch shutdown: false switchport: mode: trunk trunk_allowed_vlans: ids: [10, 20, 30] ranges: - from: 100 to: 200 trunk_native_vlan_id: 1 nonegotiate: true spanning_tree: guard: root link_type: point-to-point load_interval: 30 snmp_trap_link_status: true subinterfaces: - id: "10.100" description: VLAN 100 Subinterface shutdown: false vrf_forwarding: GUEST encapsulation_dot1q_vlan_id: 100 ipv4: address: 10.100.1.1 address_mask: 255.255.255.0 helper_addresses: - address: 10.1.1.10