LWN: Comments on "iproute2 and libbpf: vendoring on the small scale" https://lwn.net/Articles/836911/ This is a special feed containing comments posted to the individual LWN article titled "iproute2 and libbpf: vendoring on the small scale". en-us Sat, 04 Oct 2025 05:27:11 +0000 Sat, 04 Oct 2025 05:27:11 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/841663/ https://lwn.net/Articles/841663/ nybble41 <div class="FormattedComment"> <font class="QuotedText">&gt; if you made the output of ip make the ip address colored</font><br> <p> You mean like &quot;ip -c addr&quot;?<br> </div> Mon, 04 Jan 2021 16:43:16 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/841417/ https://lwn.net/Articles/841417/ mathstuf <div class="FormattedComment"> You can see this effect when trying to make useful CI Docker images for Windows builds. I believe that Windows Docker containers are limited to around 20G by default (almost certainly by Docker Hub). I don&#x27;t know how changeable this is (e.g., it might be baked in at (base) image creation time). Fun things with Windows container usages:<br> <p> - Base images are usually 4GB+ (the Linux image with &quot;all possible external dependencies&quot; is 2.6GB)<br> - Visual Studio requires a specific base image that is 6GB+ which contains a .NET Runtime install which apparently can&#x27;t be done in any other image (so much for composability)<br> - Installing one Visual Studio version and toolchain is another 3GB+<br> - Dependencies (e.g., Qt) can be another GB or more<br> <p> This leaves you with very limited space for doing what you&#x27;d want inside of a container (such as a CI build). We&#x27;re still using bare metal for Windows builds despite the existence of Docker on Windows.<br> </div> Tue, 29 Dec 2020 13:55:51 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/841404/ https://lwn.net/Articles/841404/ Shabbyx <div class="FormattedComment"> How is this different from any application depending on any library? You have semantic versioning for exactly this.<br> </div> Tue, 29 Dec 2020 01:27:31 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/841403/ https://lwn.net/Articles/841403/ Shabbyx <div class="FormattedComment"> Also, that &quot;solution&quot; means windows with 10 applications takes 200GB of disk, while ubuntu with a thousand applications takes 20GB. They say storage is cheap and thus ok to waste, but observe every single instance of a new storage technology getting invented (SSDs most commonly).<br> <p> Not to mention every library is loaded 50 times because it&#x27;s duplicated in every application.<br> </div> Tue, 29 Dec 2020 01:26:26 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/841402/ https://lwn.net/Articles/841402/ Shabbyx <div class="FormattedComment"> I&#x27;m sure if you made the output of ip make the ip address colored, assing that&#x27;s the information most commonly sought after, it would make a huge difference.<br> </div> Tue, 29 Dec 2020 01:22:17 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/840025/ https://lwn.net/Articles/840025/ marcH <div class="FormattedComment"> This problem hasn&#x27;t been &quot;solved&quot; for 30 years because there is no silver bullet; no simple, one-size-fits-all solution. <br> <p> This isn&#x27;t to say nothing has changed, we most notably have the Internet now. Now even when ignoring the 8 fallacies of distributed computing, no one would go for the extreme of the entire Internet downloading and using the same library every time! Oh, wait... <a href="https://lwn.net/Articles/681410/">https://lwn.net/Articles/681410/</a> :-D<br> <p> No simple solution for building, versioning, distributing and configuring software, only a large panel of engineering trade-offs for various situations. The reason these arguments keep coming is because many developers underestimate these problems and are even sometimes condescending with the people who are trying to solve them. Imagine hearing that soon enough computers will be capable to write better code than the one you&#x27;re writing right now because you&#x27;re not really solving difficult problems, &quot;just do this, it&#x27;s not hard&quot;. It is hard actually. The very first step is to acknowledge it is and respect (not: agree with) different approaches.<br> </div> Mon, 14 Dec 2020 05:14:58 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/838477/ https://lwn.net/Articles/838477/ nix <div class="FormattedComment"> I think it&#x27;s supposed to indicate that the -s option applies to many ip subcommands. Quite a lot of other commands these days do the same thing: git for one. I find it a bit annoying, too, but it does allow git -P diff and git diff -P to mean different things... which matters a lot for a metastasized mega-command like git and... not so much at all for ip.<br> </div> Fri, 27 Nov 2020 22:19:09 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/838476/ https://lwn.net/Articles/838476/ nix <div class="FormattedComment"> Ignoring the actual historical contingency reasons for all this (Hollerith cards, etc)... one reason why having a limited length of line may be useful is a truly ancient typographical rule rooted in the biology of vision: in 10-point text at a typical reading distance, any text longer than 65--70 chars or so *under certain other constraints* is too long for easy reading: the eye will tend to lose its visual lock on the line and wander off onto neighbouring lines. It&#x27;s obvious when this happens to you because it is *incredibly annoying* and you&#x27;ll get frustrated after only a few lines like this in succession.<br> <p> But, of course, there are constraints, which make this rule mostly irrelevant for source code. It came from book typesetting and before that quite possibly even handwritten manuscript production, where what is usually produced is text consisting of densely-set paragraphs, more or less rectangles of text with one shorter line at the end, perhaps with a slightly-ragged right edge, but not very ragged because that looks ugly. Source code looks nothing like this: the right edge is extremely ragged, and any lines that stretch the full width are probably standing on their own, not surrounded by text out on the right edge. Lines standing on their own like this are more or less immune from the eye losing track of which line the eye is on: the long line quite literally stands out from the lines around it.<br> <p> Furthermore, source code is usually indented, and even if it was set as dense paragraphs, the typographical rule runs from the *left edge of the indentation*, not from the left edge of the file (though in books, whole-para indentations are often applied at both edges, expanding both margins, because indented regions are usually quite rare and you want them to stand out). It&#x27;s perfectly all right, from the perspective of the eye losing track of a line, if the para the line is part of starts 120 chars from the left edge, as long as the *line itself* doesn&#x27;t have too much text in it.<br> </div> Fri, 27 Nov 2020 22:00:42 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/838398/ https://lwn.net/Articles/838398/ opsec <div class="FormattedComment"> Write a wrapper named ifconfig ? That uses &#x27;ip l&#x27; and &#x27;ip a&#x27; to get what you need ?<br> <p> I&#x27;m a FreeBSD user, we still have ifconfig, so I feel the pain as well, when I get to a linux box 8-}<br> </div> Thu, 26 Nov 2020 15:59:25 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/838368/ https://lwn.net/Articles/838368/ ecree <div class="FormattedComment"> But it&#x27;s crazy that I have to type `ip -s addr` and can&#x27;t `ip addr -s`, when command-subcommand-options is *so* much more natural. `tc` has this problem too. And `ip` doesn&#x27;t understand `-h` at *all*, which is a cardinal sin for a Unix utility. (Though what can one expect from a Cisco-ism.)<br> </div> Thu, 26 Nov 2020 10:20:54 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/838366/ https://lwn.net/Articles/838366/ geert <div class="FormattedComment"> Oh, once in a while I do use a single terminal spanning my entire monitor width. In fact I have used a single terminal spanning two side-by-side 2560x1440 monitors, using a substantially smaller font, to fit a large table in vim ;-) But those are exceptions.<br> <p> Still, my (multiple) coding windows have 80 columns. When needed, they can be widened temporarily with a keyboard shortcut.<br> <p> A wider terminal window can be useful for build or serial console output. But coding: 80 columns.<br> <p> </div> Thu, 26 Nov 2020 09:36:55 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/838348/ https://lwn.net/Articles/838348/ marcH <div class="FormattedComment"> <font class="QuotedText">&gt; To _me_ having long lines is actually a boon as I&#x27;m running terminals that are much wider than 80 characters (as monitors have been way wider than tall for decades now I find wrapping at 80 absolutely unreasonable).</font><br> <p> I don&#x27;t think I&#x27;ve ever seen anyone with a _single_ terminal spanning their entire monitor width, at least not in landscape mode. The monitor width has very little to do with line length, I don&#x27;t understand how this myth persists.<br> <p> The 80 characters limit is just a pure convention now: you can&#x27;t have everyone choosing any random limit and expect text to look good on others&#x27; terminal without any waste of screen estate either.<br> <p> Depending on the programming language and code style (not monitor width), I agree 80 tends to be a bit short but it&#x27;s very hard to change conventions. 100 characters seems like a decent trade-off but during the never ending &quot;transition&quot; there will be frequent wrapping and 20% waste.<br> </div> Wed, 25 Nov 2020 23:35:22 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/838173/ https://lwn.net/Articles/838173/ Jandar <div class="FormattedComment"> <font class="QuotedText">&gt; I think a lot of users of an LTS distro want is just something without bugs.</font><br> <p> If the user runs some important application not included within the distro a serious bug with this application could be introduced by a change in the distro. So LTS isn&#x27;t only about a bug free distro but about bug free application+distro. From a user perspective any bug of my important application caused by a change in a LTS distro is a bug of the distro.<br> </div> Mon, 23 Nov 2020 17:32:06 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837999/ https://lwn.net/Articles/837999/ giraffedata <blockquote> targeted, contained and backward compatible updates - which is what users of an LTS distro want. </blockquote> <p> I think a lot of users of an LTS distro want is just something without bugs. If you don't have a lot of money to spend finding and fixing bugs, the only way to get something without bugs is to keep it stable. Change it only to to fix bugs, and it will get less and less buggy as time goes on. <p> But if those users could have it all - modern function and no bugs - they would. Sat, 21 Nov 2020 05:31:01 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837569/ https://lwn.net/Articles/837569/ nix <div class="FormattedComment"> &#x27;ip addr&#x27; displays all the information &#x27;ip link&#x27; does about links and then adds address info to that, so that is usually enough unless you&#x27;re looking for. ip -s addr if you want packet stats too (which I almost never do, so I&#x27;m glad it&#x27;s off by default). (&#x27;ip link&#x27; is still valuable because that&#x27;s what you use to *configure* the link layer: you can&#x27;t use ip addr to do that.)<br> <p> </div> Wed, 18 Nov 2020 00:18:32 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837568/ https://lwn.net/Articles/837568/ nix <div class="FormattedComment"> <font class="QuotedText">&gt; I just used to type &quot;ifconfig&quot; - no bothering with arguments and it told me all the basic stuff I needed to know.</font><br> <p> Only if the basic stuff you need to know includes nothing at all about the routing table. It&#x27;s hard for me to imagine what networking problem that might be :) and the route output is, uh, completely different (and even more wildly inaccurate than ifconfig&#x27;s, to such an extent that it&#x27;s often impossible to use it to tell what&#x27;s going where).<br> <p> Meanwhile in the ip world we have &#x27;ip route get&#x27;, which can tell you which route will be used for a packet to a given address. This is immensely valuable with complex multi-table routing setups and would on its own justify the existence of ip, in my eyes (though of course you can&#x27;t set up such things at all with the ifconfig/route tools).<br> </div> Wed, 18 Nov 2020 00:15:55 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837567/ https://lwn.net/Articles/837567/ nix <div class="FormattedComment"> <font class="QuotedText">&gt; Besides: if the output style really doesn&#x27;t make a difference, why *not* stick with the ifconfig style for familiarity&#x27;s sake?</font><br> <p> Mostly because it&#x27;s wildly irregular and more or less impossible to extend. The ip output format is, uh, a bit painful to read (I suspect due to the lack of anything resembling punctuation), but it&#x27;s extremely extensible and it does have one valuable extra property: each line-and-following-indented-lines group is in many cases valid or almost valid *input* to the corresponding ip subcommand, or at least similar enough that you can tell what to feed ip to replicate this configuration again (or to change it slightly). ifconfig has nothing like this.<br> </div> Wed, 18 Nov 2020 00:09:58 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837542/ https://lwn.net/Articles/837542/ mkubecek <div class="FormattedComment"> This IMHO the best solution. It is already mentioned in the paragraph starting &quot;Toward the end...&quot;, I just don&#x27;t understand its last sentence as the e-mail linked by &quot;seems unwilling&quot; doesn&#x27;t really seem to disagree with this approach. AFAICS Stephen just wanted to make sure the requirement for new iproute2 to work with old kernel (even if with features limited to what that kernel supports) is going to be preserved.<br> </div> Tue, 17 Nov 2020 17:48:51 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837483/ https://lwn.net/Articles/837483/ bluca <div class="FormattedComment"> If it&#x27;s an observation, then where was it observed?<br> </div> Tue, 17 Nov 2020 10:24:34 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837477/ https://lwn.net/Articles/837477/ mbunkus <div class="FormattedComment"> <font class="QuotedText">&gt; it is and must be possible to compare one UI against another and say one is better.</font><br> <p> I wholeheartedly disagree. As long as neither is doing something immensely stupid such as presenting numbers in binary or octal, how information is perceived and digested highly depends on the human doing the digesting. We&#x27;re so diverse in how we work that there cannot be one canonical best way do present it.<br> <p> As said elsewhere, I highly prefer ip&#x27;s output. You don&#x27;t, and that&#x27;s fine, but please don&#x27;t think that just because you prefer ifconfig&#x27;s output, that that&#x27;s a universal truth or proof of it being better than ip&#x27;s.<br> </div> Tue, 17 Nov 2020 08:34:27 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837476/ https://lwn.net/Articles/837476/ jem <p> From <a href="http://www.policyrouting.org/iproute2.doc.html">iproute2.doc</a>: <pre> label NAME --- Each address may be tagged with a label string. In order to preserve compatibility with Linux-2.0 net aliases, this string must coincide with the name of the device or must be prefixed with device name followed by a colon. (eth0:duh) </pre> </p> <p> An example: <code>ip addr add 203.0.113.1/24 dev eth0 label eth0:0</code> </p> Tue, 17 Nov 2020 06:44:13 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837475/ https://lwn.net/Articles/837475/ mbiebl <div class="FormattedComment"> I do like to throw in a &quot;-c&quot; when using ip (*). Helps readability a lot for me.<br> <p> (*) I actually use alias ip=&#x27;ip -c&#x27;<br> </div> Tue, 17 Nov 2020 05:23:02 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837474/ https://lwn.net/Articles/837474/ foom <div class="FormattedComment"> If the next iproute2 requires a new-enough libbpf version in order to build, this problem quite simply solves itself -- the priority of updating iproute2 will transfer to libbpf, and the package will get updated.<br> </div> Tue, 17 Nov 2020 05:11:07 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837462/ https://lwn.net/Articles/837462/ khim <p>If you think Windows is immune… Sorry, but no. <p>I can assert you as someone who spent few <b>hours</b> recently trying to convince Visual Studio Express to install on a certain Windows 8 system. I have <b>no</b> idea what happened to .NET install there, but all attempts to solve that issue and attempts to use tools provided by Microsoft and others to solve that issue… failed. The mere fact that there are numerous tools shows that debate is far from being “settled”. <p>The only thing that Windows have done right is just a simple reduction of scope: most programs bring most dependencies with them which means chance to get crazy breakage is reduced. But when you need something which is part of an OS… you get the same dismal experience on Windows, too. <p>P.S. Since my friend only needed <b>some</b> C++ IDE for the University courses in the end problem was solved by using MinGW and CLion. Neither needs .NET at all thus everything worked beautifully. Tue, 17 Nov 2020 00:07:15 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837461/ https://lwn.net/Articles/837461/ quotemstr <div class="FormattedComment"> <font class="QuotedText">&gt; Did it ever occur to you that the actual reason why you see ifconfig output as prettier, easier to read, &quot;human centered&quot; or even &quot;making eyes bleed less&quot; is that you are used to it?</font><br> <p> It did occur to me, but I still think the ifconfig output is better. I&#x27;m not saying that&#x27;s a universal truth, but being familiar with both commands, my preference is still ifconfig&#x27;s output. In general, while familiarity does affect our perception of UI quality, it is and must be possible to compare one UI against another and say one is better.<br> <p> Besides: if the output style really doesn&#x27;t make a difference, why *not* stick with the ifconfig style for familiarity&#x27;s sake? The goal is to get everyone off obsolete tools, isn&#x27;t it?<br> <p> Sometimes, when people replace tool X with tool Y on the grounds that X is obsolete, they make Y differ from X in ways arbitrary ways that aren&#x27;t related to X&#x27;s obsolescence, causing needless pain in the transition. I say that when we replace X with Y, we make Y resemble X as much as possible to drive adoption of Y and reduce transition pain. For example, I think Python 3 should have kept its print statement: making print a function was a needless incompatibility.<br> </div> Tue, 17 Nov 2020 00:03:50 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837460/ https://lwn.net/Articles/837460/ quotemstr <div class="FormattedComment"> ISTM the problem was that the removal of alias interfaces broke userland. Was it infeasible to keep supporting them or something? It&#x27;s too late to add them back now, but still.<br> </div> Mon, 16 Nov 2020 23:57:03 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837459/ https://lwn.net/Articles/837459/ mkubecek <div class="FormattedComment"> I think this is exactly the problem and I&#x27;m afraid it&#x27;s an observation rather than an assumption. As for why, my guess is that while iproute2 is considered to be one of core packages so that there is a pressure to keep it up-to-date, this may not always be the case for libbpf, unless there is a sufficiently enthusiastic maintainer.<br> </div> Mon, 16 Nov 2020 23:49:05 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837458/ https://lwn.net/Articles/837458/ mkubecek <div class="FormattedComment"> No, I did not mean &quot;incomplete&quot; because the lack of features is only one part of the problem - and perhaps a minor one. For example, ifconfig (and the ioctl interface it uses) still pretends a network interface has (at most) one IPv4 address which is _set_ while kernel maintains a set of addresses which can be added to or removed from. To work around this, It also pretends there are &quot;alias interfaces&quot; which no longer exist since kernel 2.2, leading to its own kind of problems like &quot;ifconfig foo:0 mtu 1400&quot; actually changing MTU of foo. There are real people who made a remote host unresponsive because of this caveat and real poeple who keep asking why they cannot use &quot;eth0:0&quot; as an interface name in netfilter rules.<br> </div> Mon, 16 Nov 2020 23:42:30 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837456/ https://lwn.net/Articles/837456/ mkubecek <div class="FormattedComment"> Did it ever occur to you that the actual reason why you see ifconfig output as prettier, easier to read, &quot;human centered&quot; or even &quot;making eyes bleed less&quot; is that you are used to it? For me, it&#x27;s exactly the opposite: whenever I have to deal with ifconfig or route output, it&#x27;s much harder for me to parse it - and that&#x27;s when I&#x27;m lucky that the information I&#x27;m looking for is actually there. What you call &quot;pure noise&quot; may be an important piece of information for someone else (and so is what you call &quot;numeric prefix&quot;). BtW, most people don&#x27;t know and don&#x27;t run either of these commands so it&#x27;s rather irrelevant what is &quot;pure noise for most people&quot;.<br> <p> Ad &quot;simpler &quot;ifconfig&quot;-style one-statistic-per-line approach&quot;: are you really talking about the same output as you presented? What I see is one line with two stats, one with four, then again one with two and one with four. I&#x27;m not sure what you call &quot;one-statistic-per-line&quot; style there.<br> </div> Mon, 16 Nov 2020 23:16:52 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837453/ https://lwn.net/Articles/837453/ bluca <div class="FormattedComment"> Debian doesn&#x27;t get any cash, and yet there are daily updates to stable via -security and quarterly-ish via -updates. Of course they are targeted, contained and backward compatible updates - which is what users of an LTS distro want.<br> </div> Mon, 16 Nov 2020 22:28:06 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837451/ https://lwn.net/Articles/837451/ mbunkus <div class="FormattedComment"> Just something to think about: us humans are rather diverse. There are very few things about that the output of either that could be said to be objectively better. It&#x27;s all a matter of preference. And your personal preferences aren&#x27;t everyone else&#x27;s.<br> <p> Therefore I think that this…<br> <p> <font class="QuotedText">&gt; A few minor human-centered tweaks to &quot;ip&quot;&#x27;s interface would go a long way towards making people prefer it to &quot;ifconfig&quot;.</font><br> <p> …is a fool&#x27;s errand. For example:<br> <p> To _me_ the tabular layout of ip&#x27;s counters is much easier to grasp at a glance. To _me_ seeing the queueing discipline is important. To _me_ having long lines is actually a boon as I&#x27;m running terminals that are much wider than 80 characters (as monitors have been way wider than tall for decades now I find wrapping at 80 absolutely unreasonable). That all addresses (both IPv4 and IPv6) are written in prefix notation and that I don&#x27;t have to convert between netmask &amp; prefix length is a huge boon for me. Dealing with IPv6 a lot I absolutely need to see the relevant flags (e.g. &quot;temporary&quot; or &quot;mngtmpaddr&quot;).<br> <p> Last but certainly not least: whenever I need to parse that information I simply let ip output JSON. That alone is a total killer argument for _me_.<br> <p> My point is not that ip is better than ifconfig, just that there is no &quot;standard human&quot;, and therefore saying thinks like &quot;human-centered&quot; is so imprecise that it&#x27;s worthless.<br> </div> Mon, 16 Nov 2020 22:08:17 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837443/ https://lwn.net/Articles/837443/ nivedita76 <div class="FormattedComment"> From the bpf side, the argument seems to boil down to the assumption that distro&#x27;s would keep updating iproute2 with every kernel release, but would not update libbpf the same way. I don&#x27;t understand why this would happen though.<br> </div> Mon, 16 Nov 2020 19:22:36 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837440/ https://lwn.net/Articles/837440/ dancol It's also worth looking at the status output of both commands in detail and see why people might prefer "ifconfig" to "ip". In particular: compare this "ip" output: <pre> 2: wlp59s0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 04:ed:33:4c:b4:4a brd ff:ff:ff:ff:ff:ff inet 192.168.86.185/24 brd 192.168.86.255 scope global dynamic noprefixroute wlp59s0 valid_lft 71064sec preferred_lft 71064sec inet6 2604:4080:1321:8090:308c:1c2:a8b0:a941/64 scope global dynamic noprefixroute valid_lft 3075sec preferred_lft 1275sec inet6 fe80::ddec:2fe4:a8b6:842f/64 scope link noprefixroute valid_lft forever preferred_lft forever RX: bytes packets errors dropped overrun mcast 3125287182 3018779 0 246 0 0 TX: bytes packets errors dropped carrier collsns 403122417 957242 0 0 0 0 </pre> to this "ifconfig" output: <pre> wlp59s0: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt; mtu 1500 inet 192.168.86.185 netmask 255.255.255.0 broadcast 192.168.86.255 inet6 fe80::ddec:2fe4:a8b6:842f prefixlen 64 scopeid 0x20&lt;link&gt; inet6 2604:4080:1321:8090:308c:1c2:a8b0:a941 prefixlen 64 scopeid 0x0&lt;global&gt; ether 04:ed:33:4c:b4:4a txqueuelen 1000 (Ethernet) RX packets 3018891 bytes 3125321368 (3.1 GB) RX errors 0 dropped 246 overruns 0 frame 0 TX packets 957317 bytes 403128107 (403.1 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 </pre> <p>Both outputs are a bit noisy, but the "ifconfig" one is less so and prettier. Why does "ip" output a numeric prefix before each interface ("2:" above) instead of just the interface name? Why do the statistics for "ip" have to be in the form of a table ("RX:", "TX:") instead of a simpler "ifconfig"-style one-statistic-per-line approach? The "valid_lft 3075sec preferred_lft 1275sec" bit is pure noise for most people. <p>And why can't "ip" wrap lines at some reasonable length? <p>"ifconfig" persists when "ip" exists not <i>only</i> because people are irrationally stubborn, but also because "ifconfig" output produces output that makes the eyes bleed less than "ip"'s output. The brain is an association machine. If typing "ip" is followed by displeasure, for whatever reason and typing "ifconfig" is not followed by similar displeasure, then people are going to type "ifconfig" regardless of the theoretical advantages of typing "ip". <p>A few minor human-centered tweaks to "ip"'s interface would go a long way towards making people prefer it to "ifconfig". Mon, 16 Nov 2020 18:55:31 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837435/ https://lwn.net/Articles/837435/ pizza <div class="FormattedComment"> <font class="QuotedText">&gt; A tool serving as a configuration interface for kernel networking which has been incompatible with kernel networking for almost 22 years is definitely obsolete, no matter how many people still refuse to acknowledge it.</font><br> <p> I think you meant to say _incomplete_ -- because ifconfig is very much _compatible_ with modern kernels; it just can&#x27;t configure every possible option. Indeed, even today ifconfig does everything that most users need.<br> </div> Mon, 16 Nov 2020 17:56:54 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837434/ https://lwn.net/Articles/837434/ mkubecek <div class="FormattedComment"> A tool serving as a configuration interface for kernel networking which has been incompatible with kernel networking for almost 22 years is definitely obsolete, no matter how many people still refuse to acknowledge it.<br> </div> Mon, 16 Nov 2020 17:37:55 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837433/ https://lwn.net/Articles/837433/ sfeam <div class="FormattedComment"> If there are indeed so many people who have been using it and prefer to continue using it, then the logical conclusion is that it is not &quot;obsolete&quot;.<br> </div> Mon, 16 Nov 2020 17:18:35 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837432/ https://lwn.net/Articles/837432/ mkubecek <div class="FormattedComment"> Sadly, that wouldn&#x27;t help. Even if &quot;ip&quot; without arguments did show something like &quot;ip -s addr show&quot; (or &quot;ip -s a&quot;) does - i.e. everything &quot;ifconfig&quot; does and more, the ifconfig fanclub would still complain. They don&#x27;t care that ifconfig shows you things that don&#x27;t exist, they don&#x27;t care that it does not show important information, they don&#x27;t care that it sometimes does something completely different than you would expect, they don&#x27;t care that it uses different syntax for IPv4 and IPv6 addresses, they didn&#x27;t care that it used to truncate interface names to 9 characters. It&#x27;s their pet and they won&#x27;t accept anything else on principle, even if it has more consistent syntax, actually works and is way more powerful.<br> <p> The real problem is that even today, new articles and books are being written which teach people to use ifconfig (route, arp, netstat, ...). Thus even people who only learned about ifconfig when it had been already obsolete for 15 years, keep saying &quot;I&#x27;m used to it, I don&#x27;t want to learn something new.&quot;<br> </div> Mon, 16 Nov 2020 17:11:35 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837344/ https://lwn.net/Articles/837344/ imMute <div class="FormattedComment"> <font class="QuotedText">&gt;There are a number of models where long-term supported distribution releases do not freeze the stack for the entire life of the release. Neither Red Hat Enterprise Linux nor SUSE Linux Enterprise do this, and clearly their customers aren&#x27;t throwing pitchforks at them. If anything, they are asking for more updates and rebases! So clearly that&#x27;s not it.</font><br> <p> You&#x27;re right. The difference is the word &quot;Enterprise&quot;. The customers aren&#x27;t throwing pitchforks because they&#x27;re throwing cash. Cash that can be used to keep a long-term distribution stable AND keep it up to date.<br> </div> Mon, 16 Nov 2020 15:14:07 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837327/ https://lwn.net/Articles/837327/ Wol <div class="FormattedComment"> So in order to get the informatiion I might want, I have to type three or four commands? Whereas ifconfig was just one command?<br> <p> If that&#x27;s what I want, how do I get multiple bits of information in one go?<br> <p> Cheers,<br> Wol<br> </div> Mon, 16 Nov 2020 08:04:44 +0000 iproute2 and libbpf: vendoring on the small scale https://lwn.net/Articles/837325/ https://lwn.net/Articles/837325/ MaZe <div class="FormattedComment"> Just FYI, but &#x27;ip&#x27; is actually technically less typing...<br> <p> ip&lt;space&gt;a&lt;enter&gt;<br> vs<br> ifco&lt;tab&gt;&lt;enter&gt;<br> <p> But, yeah I do sort of get where you&#x27;re coming from.<br> </div> Mon, 16 Nov 2020 02:24:15 +0000