Project

General

Profile

Actions

Feature #12819

closed

GUI option to configure layers for LACP hash

Added by Mat Clarke 4 months ago. Updated 2 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
Viktor Gurov
Category:
LAGG Interfaces
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
Plus Target Version:
22.05
Release Notes:
Default

Description

Currently when creating an LACP LAG interface it gets created with the hashing "lacp lagghash l2,l3,l4" not all switches support this LACP hashing so would be good to give users the option to configure this when creating LACP interfaces so they could select "Layer 2", "Layer 2 + Layer 3", etc


Related issues

Related to Bug #12831: Typo in in /etc/inc/interfaces.inc line 1107Resolved

Actions
Actions #1

Updated by Viktor Gurov 4 months ago

  • Assignee set to Viktor Gurov
Actions #2

Updated by Jim Pingle 4 months ago

  • Status changed from New to Pull Request Review
  • Target version set to 2.7.0
  • Plus Target Version set to 22.05
Actions #3

Updated by Viktor Gurov 4 months ago

  • Status changed from Pull Request Review to Feedback
  • % Done changed from 0 to 100
Actions #4

Updated by Ronald Schellberg 4 months ago

I am getting a syntax error in interfaces.inc at 1107 on boot up that drops pfsense to login prompt.

Are we missing a . in the code after "/sbin/ifconfig"?

mwexec("/sbin/ifconfig " escapeshellarg($laggif) . " laggproto " . escapeshellarg($lagg['proto']) . " {$lacptimeout} {$lagghash}");

The 2022 2/19 6:00 update should be pulled as it brakes installations.

I see it has been fixed via #12831

Actions #5

Updated by Jim Pingle 4 months ago

  • Related to Bug #12831: Typo in in /etc/inc/interfaces.inc line 1107 added
Actions #6

Updated by Jim Pingle 3 months ago

  • Subject changed from Allow LACP hashing be configured via the pfSense WebGUI to GUI option to configure layers for LACP hash

Updating subject for release notes.

Actions #7

Updated by Jordan Greene 3 months ago

tested on 22.05.a.20220402.0600 options for LAGG now show -
Layer 2/3/4/ (default)
Layer 2 (MAC Address)
Layer 3 (IP Address)
Layer 4 (Port Number)
Layer 2/3 (MAC + IP)
Layer 3/4 (IP + Port)
Layer 2/4 (MAC + Port)

Actions #8

Updated by Viktor Gurov 3 months ago

  • Status changed from Feedback to Resolved
Actions #9

Updated by Jim Pingle 3 months ago

  • Status changed from Resolved to Feedback

That only showed that the GUI option was there -- It still needs to be tested at the OS level to make sure the selected options are placed on the LAGG, get set at boot, and actually work as expected.

Actions #10

Updated by Chris Linstruth 2 months ago

Ran through the various settings. Looks good. All passed basic pings to another host across the lagg.

Layer 2/3/4 (default)
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        laggproto lacp lagghash l2,l3,l4
        laggport: ix2 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: ix3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>

Layer 2 (MAC Address)
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        laggproto lacp lagghash l2
        laggport: ix2 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: ix3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>

Layer 3 (IP Address)
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        laggproto lacp lagghash l3
        laggport: ix2 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: ix3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>

Layer 4 (Port number)
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        laggproto lacp lagghash l4
        laggport: ix2 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: ix3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>

Layer 2/3 (MAC + IP)
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        laggproto lacp lagghash l2,l3
        laggport: ix2 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: ix3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>

Layer 3/4 (IP + Port)
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        laggproto lacp lagghash l3,l4
        laggport: ix2 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: ix3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>

Layer 2/4 (MAC + Port)
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        laggproto lacp lagghash l2,l4
        laggport: ix2 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: ix3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>

Back to Layer 2/3/4 (default)
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        laggproto lacp lagghash l2,l3,l4
        laggport: ix2 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: ix3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
Actions #11

Updated by Chris Linstruth 2 months ago

While I agree this is a welcome feature addition it should not matter what the other side supports. This is for transmission only. The other side does not have to match and can, in fact, be set differently..

Actions #12

Updated by Viktor Gurov 2 months ago

  • Status changed from Feedback to Resolved
Actions

Also available in: Atom PDF