From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id gLW4ILhkTmCIKgAA0tVLHw (envelope-from ) for ; Sun, 14 Mar 2021 19:32:08 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id OAaHHLhkTmDRLAAAbx9fmQ (envelope-from ) for ; Sun, 14 Mar 2021 19:32:08 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id DF2AA1F144 for ; Sun, 14 Mar 2021 20:32:07 +0100 (CET) Received: from localhost ([::1]:45566 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lLWT8-00071W-Kf for larch@yhetil.org; Sun, 14 Mar 2021 15:32:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37198) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lLWSf-00070h-Nq for guix-devel@gnu.org; Sun, 14 Mar 2021 15:31:37 -0400 Received: from lepiller.eu ([2a00:5884:8208::1]:35298) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lLWSd-0004E7-6d for guix-devel@gnu.org; Sun, 14 Mar 2021 15:31:37 -0400 Received: from lepiller.eu (localhost [127.0.0.1]) by lepiller.eu (OpenSMTPD) with ESMTP id 2ec4bb55 for ; Sun, 14 Mar 2021 19:31:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=lepiller.eu; h=date:from :to:subject:message-id:mime-version:content-type :content-transfer-encoding; s=dkim; bh=24tJdWAOL7VTSy3eDXYo0vPZg LjQMRn6iIN/co+ikhk=; b=GE4wB+oUUrtsAMLBjIyczz5IXOdDJPPVqcHCX9b+8 SL5/kHJURdqpVHDPhCRGKyxidD6RmprsEUvztSkpCbKM0kyt0RkUXsTZaTkN1GnT Yf3STft+5ey54tvxCcAuCMxOR7WtsUT9aSmo1CSdQDPQ4NyCIF7UWGQs9xk82C/l A5D1s/7KlFjrlcOT94rJWQD92Y8HnDEROPMhTOt3l3G0YmoyKrpEycy2MTMQzSwb 7FJrGrlKqTAqyrhElQUmCiqgFcKwldvixeM9SHz+F8JqED9fgRTZvZcpUWfnWBoW sEHuIdRdteDaxF9iMXOkoNATEAO2UCw3fVyqsUU/Mnsig== Received: by lepiller.eu (OpenSMTPD) with ESMTPSA id 10cfdaa0 (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO) for ; Sun, 14 Mar 2021 19:31:27 +0000 (UTC) Date: Sun, 14 Mar 2021 20:31:10 +0100 From: Julien Lepiller To: guix-devel@gnu.org Subject: Guile Netlink 1.0 released Message-ID: <20210314203110.207ed0ca@tachikoma.lepiller.eu> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=2a00:5884:8208::1; envelope-from=julien@lepiller.eu; helo=lepiller.eu X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1615750328; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=z5YemyJ8vl0OsuJQm+OUp7lDCHQ/5l+jUT0izxMnzV8=; b=hCYuedk20C9+rzT0EWaDhmguCI6PVBlwnngZH6/dOZphf3tX5tDzX2t5++Hp6URmcoE+66 FfAuQYGyFS7VQzamR+aNYfTOz8tPO08toiJ3b4deVLiHD9SL8jAwNUVbLNUYJ4ZYOXNdLF sRFhjqz2P8mtfksFvzMaYS78C/E32q7xx4/41v7cE8vlBSXUqCBYcJzaSc2+xRlBz8rLjq D0Y0MEHZbqQBKF5yqNz0dYBxFfexHKlhPx9oVqJD7EOnNrlrHIAFOyM6TNuz8C/6YpMVAK MLf7v+YYEMXfJyFnKWQSnxA7zprPu2B7394X+AH9zgS3c8KwrGMjhk25A00s1Q== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1615750328; a=rsa-sha256; cv=none; b=B/mCZlXPCA8rnHIzjKXsfaWNX1jsgeqXqkjFuV3KE3CWwgysEKCUzZpYf+1Pjxd6gvpg/F UcjMlYwmgfjIKBSUhmWpB5S6R8TA5MKYWU+u5m43T9yqq0g5te652H7owEFkn1MJF55jXw GDw9oHZZZ9fkJe90Jp4N2q4tpXvIPQR94V0vazfrIiumX8l0CErs+c+ACJnRjUIL1DRq8X Zo59R7ls1FtlEu1v8H1zl3WN1Mm/MB/S/5ygC2G+zGrythHFwtY62j2Sj4Qn34Y5YlvkU5 HogGvUrXaULtXfItPZkWjXZGISL6xconX8p6d4gslBeJDyK4+S7kFsBFU9/BRg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=lepiller.eu header.s=dkim header.b=GE4wB+oU; dmarc=pass (policy=none) header.from=lepiller.eu; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: -3.10 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=lepiller.eu header.s=dkim header.b=GE4wB+oU; dmarc=pass (policy=none) header.from=lepiller.eu; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: DF2AA1F144 X-Spam-Score: -3.10 X-Migadu-Scanner: scn0.migadu.com X-TUID: 1LajQGkzYa4U Hi! I'm proud to announce the first release of Guile Netlink! git clone https://git.lepiller.eu/git/guile-netlink cd guile-netlink git checkout 1.0 # or 29ff43368f1cc2d10a7e5f09dc9f80f85582d6ee git tag -v 1.0 The 'git tag -v' command check the authenticity of your checkout. You may need to retrieve the signing key first: gpg --keyserver pool.sks-keyservers.net \ --recv-keys 1EFB09091F17D28CCBF9B13A53D457B2D636EE82 Guile Netlink provides three components: - A helper library for implementing netlink protocols - An implementation of rtnetlink, one of the netlink protocols. It is used to query and alter the state of the network stack in Linux. - A high-level API implemented on top of rtnetlink and inspired by iproute2's commands Here are a few examples (most of which will only work as root and will really modify your network), extracted from the manual: ;; same as "ip l add v0p0 type veth peer v0p1" (link-add "v0p0" "veth" #:type-args '((peer . "v0p1"))) ;; same as "ip a add 192.0.2.15/24 dev enp1s0 (addr-add "enp1s0" "192.0.2.15/24") (addr-add "enp1s0" "2001:db8::1a4c/64" #:ipv6? #t) ;; removing the previous addresses, as in "ip a del 192.0.2.15/24 dev ;; enp1s0" (addr-del "enp1s0" "192.0.2.15/24") (addr-del "enp1s0" "2001:db8::1a4c/64" #:ipv6? #t) ;; same as "ip a" or "ip addr show" (addr-show) ;; same as "ip r add default via 192.0.2.1 dev enp1s0" (route-add "default" #:device "enp1s0" #:via "192.0.2.1") ;; same as "ip r add 192.0.2.0/24 dev enp1s0 src 192.0.2.15" (route-add "192.0.2.0/24" #:device "enp1s0" #:src "192.0.2.15") Hopefully, the high-level API can be used on Linux to replace our current implementation of container networking and static networking service type. You will find the complete documentation online at https://git.lepiller.eu/guile-netlink/manual, the code is available at https://git.lepiller.eu/guile-netlink (note that the clone URL is different, see above) and you can report any issue, patch and ideas to me, by email. Hope you'll enjoy! Julien