{"object_kind":"push","event_name":"push","before":"aa91d64606ff4a2c288e4c393305ee51dd27f8e6","after":"460f0b4bc9ada85d430c4b212eb1fdf6707dbc1f","ref":"refs/heads/main","ref_protected":false,"checkout_sha":"460f0b4bc9ada85d430c4b212eb1fdf6707dbc1f","message":null,"user_id":15119,"user_name":"Fernando Fernández Mancera","user_username":"ffmancera","user_email":"","user_avatar":"https://gitlab.freedesktop.org/uploads/-/system/user/avatar/15119/avatar.png","project_id":411,"project":{"id":411,"name":"NetworkManager","description":"NetworkManager — network management daemon","web_url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager","avatar_url":"https://gitlab.freedesktop.org/uploads/-/system/project/avatar/411/nm_logo.png","git_ssh_url":"git@gitlab.freedesktop.org:NetworkManager/NetworkManager.git","git_http_url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git","namespace":"NetworkManager","visibility_level":20,"path_with_namespace":"NetworkManager/NetworkManager","default_branch":"main","ci_config_path":"","homepage":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager","url":"git@gitlab.freedesktop.org:NetworkManager/NetworkManager.git","ssh_url":"git@gitlab.freedesktop.org:NetworkManager/NetworkManager.git","http_url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git"},"commits":[{"id":"69f3493670140a7a9be28412a97f71d685a14ce4","message":"l3cfg: add helper function to fetch all the IPv4 configured addresses\n\nThis function would be useful when performing operations related to the\nIPv4 addresses configured on the l3cfg. E.g this function will be used\nfor getting the IPv4 to announce on a GARP on bonding-slb when one of\nthe ports failover.\n","title":"l3cfg: add helper function to fetch all the IPv4 configured addresses","timestamp":"2024-12-18T14:45:54+01:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/69f3493670140a7a9be28412a97f71d685a14ce4","author":{"name":"Fernando Fernandez Mancera","email":"ffmancera@riseup.net"},"added":[],"modified":["src/core/nm-l3cfg.c","src/core/nm-l3cfg.h"],"removed":[]},{"id":"a63eec924cccf324b82a66fccc9d72d49bb2adfc","message":"glib-aux: add nm_ether_addr_hash() helper\n\nAdd a hash generation helper for NMEtherAddr struct. This can be used\nfor HashTables containing pointers to NMEtherAddr structs.\n","title":"glib-aux: add nm_ether_addr_hash() helper","timestamp":"2024-12-18T14:45:54+01:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/a63eec924cccf324b82a66fccc9d72d49bb2adfc","author":{"name":"Fernando Fernandez Mancera","email":"ffmancera@riseup.net"},"added":[],"modified":["src/libnm-glib-aux/nm-shared-utils.c","src/libnm-glib-aux/nm-shared-utils.h"],"removed":[]},{"id":"00f47efcb21ccf0a5b0ff943e2d0ad51cf807865","message":"linux-platform: add helper function to query FDB table\n\nThe function introduced queries the FDB table via netlink socket. It\naccepts a list of ifindexes to filter out the FDB content not related to\nit. It returns an array of MAC addresses.\n\nTo cltarify this function is unusually exposed directly on\nnm-linux-platform.h as we don't want this be part of the whole\nNMPlatform object or cache. This, is an exception to the rule to\nsimplify the integration of this functionality on NetworkManager.\n\nIn addition, it also doesn't use the async mechanism that is widely used\non netlink communication across nm-linux-platform. Again, the reason is\nto simplify its use, as async communication won't provide a benefit to\nthe use cases we have planned for this, i.e balance-slb RARP announcing.\n","title":"linux-platform: add helper function to query FDB table","timestamp":"2024-12-18T14:45:54+01:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/00f47efcb21ccf0a5b0ff943e2d0ad51cf807865","author":{"name":"Fernando Fernandez Mancera","email":"ffmancera@riseup.net"},"added":[],"modified":["src/libnm-platform/nm-linux-platform.c","src/libnm-platform/nm-linux-platform.h"],"removed":[]},{"id":"3f2f922dd94347c4a38f6abb7fbf1926e62fb542","message":"bonding: send ARP announcement on bonding-slb link/carrier down\n\nWhen a bond in balance-slb is created, the ports are enabled or disabled\nbased on carrier and link state. If the link/carrier goes down, the port\nbecomes disabled and we must make sure the MAC tables of the switches\nare updated properly so the traffic is redirected.\n\nIn order to solve this, we send a GARP or RARP broadcast packet on the\nbond. This fix cover 3 different balance-slb scenarios.\n\nScenario 1: The bond in balance-slb mode has IPv4 address configured and\nsome ports connected. Here the bond is acting like active-backup as the\npackets will always have as source MAC the address of the bond\ninterface. When a port goes down, NetworkManager will send a GARP\nbroadcast announcing the address configured on the bond with the MAC\naddress configured on the port.\n\nScenario 2: The bond in balance-slb mode is connected to a bridge and has\nsome ports connected. The bridge has IPv4 configured. When a port goes\ndown, NetworkManager will send a GARP broadcast announcing the address\nconfigured on the bridge with the MAC address configured on the port.\n\nScenario 3: The bond in balance-slb mode is connected to a bridge and\nhas some ports connected. The bridge does not have IP configuration and\ntherefore everything is L2. When a port goes down, NetworkManager will\nquery the FDB table and filter the entries by the ones belonging to the\nbridge and the bond ifindexes. Then, it will send a RARP broadcast\nannouncing every learned MAC address from FDB.\n\nFixes: e9268e392418 ('firewall: add mlag firewall utils for multi chassis link aggregation (MLAG) for bonding-slb')\n","title":"bonding: send ARP announcement on bonding-slb link/carrier down","timestamp":"2024-12-18T14:45:54+01:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/3f2f922dd94347c4a38f6abb7fbf1926e62fb542","author":{"name":"Fernando Fernandez Mancera","email":"ffmancera@riseup.net"},"added":[],"modified":["src/core/devices/nm-device-bond.c","src/core/devices/nm-device-bond.h","src/core/devices/nm-device.c","src/core/nm-bond-manager.c","src/core/nm-bond-manager.h"],"removed":[]},{"id":"460f0b4bc9ada85d430c4b212eb1fdf6707dbc1f","message":"merge: branch 'ff/garp_bond_slb'\n\nhttps://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2057\n","title":"merge: branch 'ff/garp_bond_slb'","timestamp":"2024-12-18T15:47:43+01:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/460f0b4bc9ada85d430c4b212eb1fdf6707dbc1f","author":{"name":"Fernando Fernandez Mancera","email":"ffmancera@riseup.net"},"added":[],"modified":["src/core/devices/nm-device-bond.c","src/core/devices/nm-device-bond.h","src/core/devices/nm-device.c","src/core/nm-bond-manager.c","src/core/nm-bond-manager.h","src/core/nm-l3cfg.c","src/core/nm-l3cfg.h","src/libnm-glib-aux/nm-shared-utils.c","src/libnm-glib-aux/nm-shared-utils.h","src/libnm-platform/nm-linux-platform.c","src/libnm-platform/nm-linux-platform.h"],"removed":[]}],"total_commits_count":5,"push_options":{},"repository":{"name":"NetworkManager","url":"git@gitlab.freedesktop.org:NetworkManager/NetworkManager.git","description":"NetworkManager — network management daemon","homepage":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager","git_http_url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git","git_ssh_url":"git@gitlab.freedesktop.org:NetworkManager/NetworkManager.git","visibility_level":20}}