mirror of
https://github.com/jsimonetti/rtnetlink.git
synced 2026-03-31 18:01:41 +02:00
* Add attr validation This commit removes unix.IFLA_UNSPEC and introduces checks for the interface name, the link type and the queue disc fields. Interface name validation is necessary to prevent an 'invalid argument' error when creating a link with an empty name. Other checks were added to be consistent with the ip tools. Signed-off-by: Birol Bilgin <birolbilgin@gmail.com> * Add network namespace type This commit introduces the NetNS struct and integrates network namespace capabilities into link attributes. This enhancement facilitates the creation of links, such as veth pairs, across different network namespaces without the need to execute directly within those namespaces. Signed-off-by: Birol Bilgin <birolbilgin@gmail.com> * Add LinkDriver interface This commit introduces a Driver interface and changes Data and SlaveData fields within the LinkInfo struct as LinkDriver to accommodate driver-specific data encoding, addressing the limitation where LinkInfo.Data and SlaveData fields were merely byte slices without support for specific data encoding. Drivers are registered globally with the RegisterDriver function. For un-registered drivers, the default LinkData driver is used. Signed-off-by: Birol Bilgin <birolbilgin@gmail.com> * Add Driver Package This commit introduces the 'driver' package, which contains specific implementations of the LinkDriver interface. It also includes the implementation of the Linux bond driver as LinkDriver and the bond slave driver as LinkSlaveDriver. Signed-off-by: Birol Bilgin <birolbilgin@gmail.com> * Add Netkit and Veth drivers This commit adds Netkit and Veth drivers. Signed-off-by: Birol Bilgin <birolbilgin@gmail.com> --------- Signed-off-by: Birol Bilgin <birolbilgin@gmail.com>