Raymii.org
Quis custodiet ipsos custodes?Home | About | All pages | Cluster Status | RSS Feed
connman operstate list
Published: 25-06-2019 | Author: Remy van Elst | Text only version of this article
❗ This post is over five years old. It may no longer be up to date. Opinions may have changed.
Table of Contents
Recently I was debugging connection issues with a system that uses
connman as it's network management software. In the log it was visible that
the connection went away and came back, logged with ' operstate $number $state
.
I couldn't easily find an overview of all the possible states, but since it's
open source we can take a look at the code to find out. Publishing it here
for future reference.
Recently I removed all Google Ads from this site due to their invasive tracking, as well as Google Analytics. Please, if you found this content useful, consider a small donation using any of the options below. It means the world to me if you show your appreciation and you'll help pay the server costs:
GitHub Sponsorship
PCBWay referral link (You get $5, I get $20 after you've placed an order)
Digital Ocea referral link ($200 credit for 60 days. Spend $25 after your credit expires and I'll get $25!)
Log
The relevant parts of the logging look like this:
Jun 22 19:41:33 hostname connmand[8080]: eth1 {newlink} index 5 operstate 6 <UP>
Jun 23 16:34:07 hostname connmand[26069]: eth1 {update} flags 36866 <DOWN>
Jun 23 16:34:07 hostname connmand[26069]: eth1 {newlink} index 5 operstate 2 <DOWN>
Jun 23 16:34:08 hostname connmand[26069]: eth1 {newlink} index 5 operstate 6 <UP>
Jun 23 16:34:08 hostname connmand[26069]: eth1 {update} flags 36867 <UP>
Jun 23 16:34:08 hostname connmand[26069]: eth1 {newlink} index 5 operstate 2 <DOWN>
Jun 23 16:34:10 hostname connmand[26069]: eth1 {newlink} index 5 operstate 6 <UP>
The different manpages and online search results didn't give me the information
I was looking for, so I cloned the repository and turned to trusty old grep
.
git clone https://git.kernel.org/pub/scm/network/connman/connman.git/
cd connman
Searching recursively:
grep -iInHr "operstate" *
The first hit was what I was looking for:
src/rtnl.c:344:static const char *operstate2str(unsigned char operstate)
src/rtnl.c:346: switch (operstate) {
You can view the code online via gitweb, but here's the list, I've added the comments with the numbers per state:
static const char *operstate2str(unsigned char operstate)
{
switch (operstate) {
case IF_OPER_UNKNOWN: //0
return "UNKNOWN";
case IF_OPER_NOTPRESENT: //1
return "NOT-PRESENT";
case IF_OPER_DOWN: //2
return "DOWN";
case IF_OPER_LOWERLAYERDOWN: //3
return "LOWER-LAYER-DOWN";
case IF_OPER_TESTING: //4
return "TESTING";
case IF_OPER_DORMANT: //5
return "DORMANT";
case IF_OPER_UP: //6
return "UP";
}
return "";
}
This info is what I was looking for to use in further automated log analysis.
Tags: connman , connmand , embedded , linux , network , networkmanager , openembedded , snippets , yocto