If you like BoxMatrix then please contribute Supportdata, Supportdata2, Firmware and/or Hardware (get in touch).
My metamonk@yahoo.com is not reachable by me since years. Please use hippie2000@webnmail.de instead.
Property:pumaglued (avmcmd)
BoxMatrix >> Shell-Commands >> pumaglued (avmcmd) | @ BoxMatrix - IRC-Chat - Translate: de es fr it nl pl |
News | Selectors | Models | Accessories | Components | Environment | Config | Commands | System | Webif | Software | Develop | Lexicon | Community | Project | Media |
Startup-Scr | Hotplug-Scr | BusyBox-Cmds | Bash-Cmds | AVM-Cmds | Chipset-Cmds | Linux-Cmds | Shared-Libs | Kernel-Mods | Research |
Name-Collision - multiple objects in this wiki use the name pumaglued!
|
AVM-Command
Command: | pumaglued (avmcmd) - type Exec | Wiki | Freetz | IPPF | whmf | AVM | Web |
Location: | Shell-Commands >> AVM-Commands - Origin: AVM | ||||||
Path: | Release: /sbin Lab+Rel: /sbin | ||||||
Properties: | Size: 27.7k - 47.7k - Firmware: 6.83 - 8.00 | ||||||
Function: | Inter-CPU connector for the ARM side of Puma6 / Puma7 models. |
Goto: Examples - Endpoints - Events - Logs - Source - Dependencies - Model-Matrix - Symbols - SMW-Browser
Details
pumaglued is the ATOM to ARM Inter-CPU connector for Puma6 / Puma7 cable models.
It is started on the ARM CPU by E41-pumaglued or vendor.pcd and serves various purposes:
- aicmd remote listener
- remote shell
- TCP proxy
- remote supportdata
- remote capture
- remote status
- HTTP webserver
- Port forwarding
fw 7.29 armconsole help:
# pumaglued -? usage: pumaglued pumaglued [options] options: -? - print this help -f - run in forground. (NOTSET) -s - stop daemon. (NOTSET) -v - verbose. (NOTSET) -p STRING - Pidfile. ("/var/run/pumaglued.pid") -o INTEGER - output buffer size. (32768) -i INTEGER - input buffer size. (8192) -D STRING - switch debug logs on. (FUNC) start server: pumaglued stop server : pumaglued -s
Examples
aicmd remote listener:
See Endpoints below.
remote shell:
See the armconsole article.
TCP proxy:
pumaglued is a tcp proxy serving the ATOM Webinterface to 192.168.100.1
on ARM - fw 7.29 armconsole:
# netstat -luntp | grep pumaglued tcp 0 0 192.168.100.1:80 0.0.0.0:* LISTEN 678/pumaglued tcp 0 0 192.168.100.1:443 0.0.0.0:* LISTEN 678/pumaglued tcp 0 0 :::3128 :::* LISTEN 678/pumaglued # aicmd pumaglued tcpproxy status proxy 192.168.100.1:80 -> 169.254.1.1:80 proxy 192.168.100.1:443 -> 169.254.1.1:443
192.168.100.1
is the hardcoded IP of the ARM interface lan0, 169.254.1.1
is the acc0 interface IP of the ATOM.
# ifconfig lan0 lan0 Link encap:Ethernet HWaddr C8:0E:14:XX:XX:XX inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0 UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 169.254.1.0 * 255.255.255.252 U 0 0 0 acc0
192.168.100.1
/ lan0 seems to be for the ISP since it also serves SNMP:
# netstat -luntp | grep 192.168.100.1 tcp 0 0 192.168.100.1:80 0.0.0.0:* LISTEN 678/pumaglued tcp 0 0 192.168.100.1:443 0.0.0.0:* LISTEN 678/pumaglued udp 0 0 192.168.100.1:161 0.0.0.0:* 1016/snmp_agent_cm udp 0 0 192.168.100.1:162 0.0.0.0:* 1016/snmp_agent_cm
remote supportdata:
pumaglued can peer remote supportdata via aicmd:
# aicmd pumaglued | grep support support QUERY - show available supportdata support GET - get supportdata # aicmd pumaglued support QUERY normal: complete supportdata enhanced: complete enhanced supportdata docsis: docsis supportdata docsisinfo: show docsisinfo cmlog: show cmlog dqos: show dqos cable: supportdata.kabel # aicmd pumaglued support GET dqos Active Downstream Service Flows: -------------------------------- Active Upstream Service Flows: -------------------------------- Classifiers: ----------------------- HAL statistics: ------------------------ no errors
remote capture:
pumaglued can peer remote packet capture via aicmd:
# aicmd pumaglued | grep capture capture QUERY - show available captures capture START - start named capture # aicmd pumaglued capture QUERY docsis_mng:3001 lo:0 acc0:0 tunl0:0 l2sd0:0 l2sm0:0 l2sd0.2:0 l2sd0.3:0 cni0:0 lbr0:0 lan0:0 wan0:0 erouter0:0 esafe0:0 acc0.4:0
remote status:
pumaglued can peer some status info via aicmd:
# aicmd pumaglued | grep stat | grep -v csock | sort docsis status - show status lanports status - show status of lanports pumacmfltstats GET - get stats shell status - show open shells tcpproxy status - show status # aicmd pumaglued docsis status erouter: on emta : off edva : off # aicmd pumaglued lanports status 0: LAN:1 eth0 down 1: LAN:2 eth1 up 1000MBit 2: LAN:3 eth2 up 1000MBit 3: LAN:4 eth3 down # aicmd pumaglued pumacmfltstats GET aicmd: <<< 500 Missing stats type. # aicmd pumaglued shell status 169.254.1.2:47817 -> /bin/sh(1365) on /dev/pts/1 (3) # aicmd pumaglued tcpproxy status proxy 192.168.100.1:80 -> 169.254.1.1:80 proxy 192.168.100.1:443 -> 169.254.1.1:443
Unfortunately there is no pumacmfltstats QUERY
to get a list of possible stats types.
HTTP webserver:
Besides the proxied main Webinterface pumaglued runs an own HTTP only webserver, listening on all ipv4/ipv6 addresses.
This explains why it requires libwebsrv.so.
fw 7.29 armconsole:
# aicmd pumaglued avmcsock show csock | grep http 9 ; [::]:3128 'http server' ; listen ; inet6,stream ; # wget http://localhost:3128/ Connecting to localhost:3128 (127.0.0.1:3128) wget: server returned error: HTTP/1.1 404 Not Found
Ok, it works but we need a valid URL.
# ls -lR /usr/www /usr/www: drwxr-xr-x 2 root root 36 Nov 5 2021 cgi-bin /usr/www/cgi-bin: lrwxrwxrwx 1 root root 22 Nov 5 2021 system_status -> /usr/bin/system_status # ls -l /usr/bin/system_status -rwxr-xr-x 1 root root 1141 Nov 5 2021 /usr/bin/system_status
Ok, we have just one file in webspace, let's try it:
# wget http://localhost:3128/cgi-bin/system_status Connecting to localhost:3128 (127.0.0.1:3128) wget: server returned error: HTTP/1.1 404 Not Found
Hmmm, strange.
Port forwarding:
pumaglued can enable SNMP and TR-069 ports on the wan0 interface.
This is controlled by the avmipc states snmp_allowed and tr069_allowed.
Both states are sent by dsld on the ATOM CPU, depending on 2 settings in ar7.cfg:
unattended_update { ... enable_snmp_on_wan = yes; enable_tr069_on_wan = no; ... }
Both are used to call the resspective functions of libpumacmflt.so, which controls pumacmflt.ko
to forward the respective ports from the wan0 interface to the internal lan0 modem interface.
For TR-069 the TCP proxy additionally adds a proxy rule to forward the TR-069 port to the ATOM CPU.
Endpoints
aicmd endpoint(s) provided by pumaglued, with these functions: (fw 7.29)
root@fritz2:/var/mod/root# aicmd pumaglued # provided by pumaglued: - fw 7.29+ HELP - show help SLABDUMP - show slab allocation SLABSHOW - show slab information QUIT - disconnect capture QUERY - show available captures capture START - start named capture support QUERY - show available supportdata support GET - get supportdata docsis status - show status pumacmfltstats GET - get stats tcpproxy status - show status shell status - show open shells shell start - start shell shell cli - start cli shell testmode - start testmode lanports status - show status of lanports # provided by libewnwlinux.so: - fw 7.01+ ewnwlinux show csockshell - show shells running ewnwlinux show genetlink - show gerneric netlink families # provided by libewnwlinux.so: - fw 7.90+ ewnwlinux netlink show - show internal information ewnwlinux netlink getroute [address] - get route for inet address ewnwlinux netlink interfaces - show interfaces ewnwlinux netlink routes [ 4 | 6 ] - show routes # provided by libavmcsock.so: - fw 7.01+ avmcsock show csock - show all csock avmcsock show dnsconfig - show all dns context avmcsock show timercb - show all timer avmcsock show debughandles - show all debughandles avmcsock show cprocess - show all processes avmcsock set debug - set debug flags # provided by libavmcsock.so: - fw 7.29+ avmcsock show cbcontext - show all cbdata avmcsock show daemon - show daemon status avmcsock show cbuf - show cbuf status # provided by libavmcsock.so: - fw 7.39+ avmcsock getsymbol <address> - get symbol for address avmcsock show dnsglobal - show all dns global values avmcsock show dnscache - show cache avmcsock show dnsqueries - show all pending queries avmcsock show avmipc [endpoint shmatch] - show avmipc events and states avmcsock ctimer show - show all timer avmcsock ctimer overview - show ctimer overview avmcsock iotrace format unctrl|hexdump - set format for csock iotrace avmcsock iotrace file - enable iotrace to file avmcsock iotrace enable - enable iotrace via debugmsg avmcsock iotrace disable - disable iotrace avmcsock iotrace match help|<match> - show allowed matches or set match avmcsock iotrace reset - remove all matches avmcsock iotrace show - show configuration # provided by libavmcsock.so: - fw 7.90+ avmcsock show signals - show signal handler avmcsock show connector [cache|stats] - show connector information avmcsock show clogger - show clogger information avmcsock set clogmod [ <module> [ '.' <submodule ] ... ] [ '=' <level> ] - set clogmod log level avmcsock slab check - red zone/free check avmcsock slab reap [heavy] - call slab_reap/slab_reap_heavy avmcsock slab dump [long] - show slab allocation avmcsock slab show - show slab information avmcsock slab ewma [show|activate|deactivate|reset] - show average allocates/freed per second avmcsock avmipc notifier [endpoint shmatch] - show registered notifier avmcsock avmipc set [endpoint shmatch] - show states/events sent avmcsock avmipc csv [endpoint shmatch] - show states/events sent and listing as csv
msgsend endpoint(s) provided by pumaglued, with these functions: (endpoints + commands, collected manually)
pumaglued docsis edocsis <send_to_pumaglued> # from edocsis_state_changed pumaglued docsis dhcp_tr069info <$1> <$2> # from docsis_dhcp_tr069info pumaglued docsis cmcfgfile # from docsis_state_changed pumaglued docsis edocsis_tr069info <%s> # from edocsis
Events
Daily updated index of AVM-Events and AVMIPC-Datastore nodes affecting this command. Last update: 2023-12-10 05:13 GMT.
The owners of Event-Sinks and Event-Sources are manual research, which may be incomplete or even wrong.
A *
in the Mod
column marks info from Supportdata-Probes, which will always stay incomplete.
A **
in the Mod
column marks info from Supportdata2 probes, which by their nature will stay way more incomplete.
A -
in the Mod
column marks manual research, the Firmware
then shows where the item occurs, not the Relation
.
Relation | Typ | Object | Mod | Firmware | Info | Origin |
---|---|---|---|---|---|---|
Netlink | family | NETLINK_ROUTE | 2** | 7.29 - 7.39 | Communication channel between routing dæmons and the kernel packet forwarding (#0) | Linux |
Multicast | group | RTMGRP_IPV4_IFADD | 2** | 7.29 - 7.39 | IPv4 address change of a Network-Interface | Linux |
Multicast | group | RTMGRP_IPV4_ROUTE | 2** | 7.29 - 7.39 | IPv4 Routing Table change | Linux |
Multicast | group | RTMGRP_IPV6_IFADDR | 2** | 7.29 - 7.39 | IPv6 address change of a Network-Interface | Linux |
Multicast | group | RTMGRP_IPV6_ROUTE | 2** | 7.29 - 7.39 | IPv6 Routing Table change | Linux |
Multicast | group | RTMGRP_LINK | 2** | 7.29 - 7.39 | Creation / deletion or up / down change of a Network-Interface. | Linux |
Multicast | group | RTMGRP_NOTIFY | 2** | 7.29 - 7.39 | Enable notification about changes in subscribed rtnetlink groups | Linux |
Multicast | group | RTMGRP_TC | 2** | 7.29 - 7.39 | Packet Scheduler Traffic Control change | Linux |
Endpoint | sock | me_pumaglued.ctl | 6* | 6.87 - 7.50 | avmipc_command endpoint of pumaglued | AVM |
Listens to | avmipc | @ | 2** | 7.29 - 7.39 | Special event for listeners of nameless private messages. | AVM |
Listens to | avmipc | aicmd_listener | 2** | 7.29 - 7.39 | Special event covering all aicmd compatible listeners. | AVM |
Listens to | avmipc | edocsisstate | 2** | 7.29 - 7.39 | State of the eDOCSIS router in JSON format. | AVM |
Listens to | avmipc | snmp_allowed | 2** | 7.29 - 7.39 | State of the SNMP ports on the DOCSIS WAN interface in JSON format. | AVM |
Listens to | avmipc | STATE_ETHSTATUS_FBSTATE | 2** | 7.29 - 7.39 | State of all LAN ports in JSON format. | AVM |
Listens to | avmipc | STATE_TR069CM_REQUEST_TR069CM_REQUEST | 2** | 7.29 - 7.39 | State of the DOCSIS modem TR-069 request in JSON format. | AVM |
Listens to | avmipc | tr069_allowed | 2** | 7.29 - 7.39 | State of the TR-069 port on the DOCSIS WAN interface in JSON format. | AVM |
Command | cmd | pumaglued (avmcmd) | ATOM to ARM CPU interconnector for Puma6 / Puma7 models. | AVM | ||
Sends | avmipc | docsis_dhcp_tr069info (avmipc) | - | 7.29 - 7.39 | State of the DHCP range of the DOCSIS TR-069 connection in JSON format. | |
Sends | avmipc | docsis_extpktlen | - | 7.29 | State of the DOCSIS sync extended packet length in JSON format. | AVM |
Sends | avmipc | docsis_syncstate | - | 7.29 | State of the DOCSIS sync in JSON format. | AVM |
Sends | avmipc | edocsis_tr069info | - | 7.29 - 7.39 | State of the eDOCSIS eRouter TR-069 config in JSON format. | AVM |
Sends | avmipc | edocsisstate | - | 7.29 - 7.39 | State of the eDOCSIS router in JSON format. | AVM |
Sends | avmipc | STATE_TR069CM_REPLY_TR069CM_REPLY | - | 7.29 - 7.39 | State of the DOCSIS modem TR-069 reply in JSON format. | AVM |
Sends | avmipc | upc.conf (avmipc) | - | 7.29 - 7.39 | State of the DOCSIS UPC over SNMP config in JSON format. | |
24 event relations for this command |
Logs
This is a subset of the Temp-Files section, filtered for logfiles of pumaglued:
Daily updated index of all pumaglued logfiles found scanning Supportdata-Probes. Last update: 2024-12-21 07:02 GMT.
The label (temp)
in the Logfile
column shows there are other objects in this wiki using this name.
The Mod
column shows the amount of models using the respective logfile. Click the column header to sort by this number.
Logfile | Mod | Firmware | Description | Path | Size/Bytes | Type | Origin |
---|---|---|---|---|---|---|---|
.srb_pumaglued | 7 | 6.87 - 7.61 | shringbuf log for pumaglued | /var | 4.0k | AVM | |
1 logfiles |
Source
The names of source files compiled into an executable often help to understand function blocks (and show gaps in the docs).
fw 7.29 source files:
$ strings /sbin/pumaglued | grep -e '\.c$' -e '\.cpp$' pumaglued.c docsis.c tcpproxy.c ./tr069cmcfg.c
This was in an armconsole using cat instead of strings.
Dependencies
Daily updated index of all dependencies of this command. Last update: 2024-12-21 07:44 GMT.
A *
in the Mod
column marks info from Supportdata-Probes, which will always stay incomplete.
Relation | Typ | Object | Mod | Firmware | Info | Origin |
---|---|---|---|---|---|---|
Started by | serv | pumaglued.service | 7 | 7.19 - 8.00 | supervisor service for pumaglued. | AVM |
Stopped by | serv | pumaglued.service | 3 | 7.19 - 7.29 | supervisor service for pumaglued. | AVM |
Runs as | proc | pumaglued (process) | 7* | 6.87 - 7.61 | Process running pumaglued | AVM |
Registers | wdog | pumaglued (watchdog) | 7* | 6.87 - 7.61 | Watchdog for pumaglued | AVM |
Serving | port | Port-80-tcp | 108* | 5.04 - 8.00 | HTTP - Hypertext Transfer Protocol - Webinterface | AVM |
Serving | port | Port-443-tcp | 89* | 5.08 - 8.00 | HTTPS - Hypertext Transfer Protocol over SSL/TLS - Webinterface | AVM |
Serving | port | Port-3128-tcp | 7* | 6.87 - 7.61 | TODO | AVM |
Serving | port | Port-8089-tcp | 122* | 4.33 - 8.00 | TR-069 ACS initiation port (AVM models). | AVM |
Serving | sock | me_pumaglued.ctl | 7* | 6.87 - 7.61 | avmipc_command endpoint of pumaglued | AVM |
Depends on | lib | ld.so | 7 | 7.08 - 8.00 | Dynamic linker / loader | Linux |
Depends on | lib | libar7cfg.so | 4 | 7.90 - 8.00 | TFFS-Configuration API to ar7.cfg and many more. | AVM |
Depends on | lib | libavm_event.so | 7 | 7.02 - 8.00 | AVM-Events management API | AVM |
Depends on | lib | libavmauth.so | 7 | 6.83 - 8.00 | Fritzbox authentification helpers | AVM |
Depends on | lib | libavmcipher.so | 4 | 7.90 - 8.00 | AES / DES / Rijndael encryption / decryption. | AVM |
Depends on | lib | libavmcsock.so | 7 | 6.83 - 8.00 | Networking, I/O and helper functions | AVM |
Depends on | lib | libavmfbstate.so | 7 | 7.02 - 8.00 | IPC fritzbox state notification | AVM |
Depends on | lib | libavmhmac.so | 7 | 6.83 - 8.00 | HMAC / SHA / MD5 hashing. | AVM |
Depends on | lib | libavmwdt.so | 4 | 7.61 - 8.00 | AVM-Watchdogs management API | AVM |
Depends on | lib | libboxenv.so | 4 | 7.90 - 8.00 | API to the rc.conf enhanced Config-Environment | AVM |
Depends on | lib | libboxlib.so | 7 | 6.83 - 8.00 | Box status, logging and statistics functions | AVM |
Depends on | lib | libc.so | 7 | 6.83 - 8.00 | Standard C library | Linux |
Depends on | lib | libcore.so | 4 | 7.61 - 8.00 | Gathers the MAC addresses of the device and maintains its device mode. | AVM |
Depends on | lib | libdl.so | 7 | 6.83 - 8.00 | Dynamic linking library | Linux |
Depends on | lib | libdocsisinfodata.so | 4 | 7.90 - 8.00 | TODO | Puma |
Depends on | lib | libdputil.so | 7 | 6.83 - 8.00 | DataPipe / packet utilities | AVM |
Depends on | lib | libdsld_sync.so | 6 | 7.39 - 7.63 | TODO | Linux |
Depends on | lib | libewnwlinux.so | 7 | 6.83 - 8.00 | Linux networking functions | AVM |
Depends on | lib | libewnwnet.so | 7 | 6.83 - 8.00 | Internet helper functions | AVM |
Depends on | lib | libfbconf.so | 4 | 7.61 - 8.00 | API to hardcoded fbconf.cfg | AVM |
Depends on | lib | libfbsync.so | 4 | 7.90 - 8.00 | TODO | AVM |
Depends on | lib | libpcap.so | 6 | 7.39 - 8.00 | Network traffic / packet capture | Linux |
Depends on | lib | libpthread.so | 7 | 6.83 - 8.00 | POSIX threading library | Linux |
Depends on | lib | libpumacmflt.so | 7 | 7.19 - 8.00 | Cable modem filtering API | Puma |
Depends on | lib | librt.so | 7 | 6.83 - 8.00 | POSIX realtime extensions library | Linux |
Depends on | lib | libslab_c++.so | 4 | 7.90 - 8.00 | C++ slab allocator | AVM |
Depends on | lib | libsvctl.so | 7 | 7.19 - 8.00 | supervisor notification library | AVM |
Depends on | lib | libwdt.so | 6 | 6.83 - 7.57 | AVM-Watchdogs management API | AVM |
Depends on | lib | libwebsrv.so | 7 | 6.83 - 8.00 | HTTP / HTTPS webserver and tools. | AVM |
Depends on | lib | libz.so | 7 | 6.110 - 8.00 | Zlib compressor / decompressor | Linux |
39 dependencies for this command |
Model-Matrix
Daily updated index of the presence, path and size of this command for each model. Last update: 2024-12-21 05:44 GMT.
Showing all models using this command. Click any column header (click-wait-click) to sort the list by the respective data.
The (main/scrpn/boot/arm/prx/atom/rtl)
label in the Model
column shows which CPU is meant for Multi-Linux models.
Note that this list is merged from Firmware-Probes of all known AVM firmware for a model, including Recovery.exe and Labor-Files.
Model | Firmware | Path | Size |
---|---|---|---|
FRITZ!Box 6430 Cable (arm) | 6.84 - 7.29 | /sbin | 32.0k - 38.9k |
FRITZ!Box 6490 Cable (arm) | 6.83 - 7.51 | /sbin | 27.7k - 38.9k |
FRITZ!Box 6590 Cable (arm) | 6.83 - 7.57 | /sbin | 27.7k - 38.9k |
FRITZ!Box 6591 Cable (arm) | 7.12 - 8.00 | /sbin | 35.7k - 47.7k |
FRITZ!Box 6660 Cable (arm) | 7.14 - 8.00 | /sbin | 35.7k - 47.7k |
FRITZ!Box 6670 Cable (arm) | 7.61 - 7.90 | /sbin | 39.9k - 47.7k |
FRITZ!Box 6690 Cable (arm) | 7.28 - 7.90 | /sbin | 35.8k - 47.7k |
7 models use this command |
Symbols
Daily updated index of all symbols of this command. Last update: 2024-12-21 07:44 GMT.
Firmware | Symbol |
---|---|
7.08 - 7.13 | main |
1 symbol for this command |