package/profeth: add support for starting and monitoring PROFINET

An Infix build with PROFINET gears Net-SNMP heavily towards acting as a
servant to profeth (p-net stack).  This will be hard-coded for now until
we've integrated it all better in Clixon.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2023-03-06 10:50:58 +01:00
parent d572bc78f3
commit e33f191d07
8 changed files with 72 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
PROFETH_ARGS="-i vlan1,e0,e1,e2,e3,e4,e5,e6,e7,e8,e9"
+13
View File
@@ -16,4 +16,17 @@ define PROFETH_POST_RSYNC_INSTALL_OPTS
endef
PROFETH_POST_RSYNC_HOOKS += PROFETH_POST_RSYNC_INSTALL_OPTS
define PROFETH_INSTALL_EXTRA
cp $(PROFETH_PKGDIR)/sysctl.conf $(TARGET_DIR)/etc/sysctl.d/profeth.conf
cp $(PROFETH_PKGDIR)/set_profinet_leds $(TARGET_DIR)/usr/sbin/
mkdir -p $(TARGET_DIR)/etc/profeth
mkdir -p $(TARGET_DIR)/etc/snmp
mkdir -p $(TARGET_DIR)/etc/tmpfiles.d
mkdir -p $(TARGET_DIR)/etc/default
cp $(PROFETH_PKGDIR)/snmpd.conf $(TARGET_DIR)/etc/snmp/
cp $(PROFETH_PKGDIR)/tmpfiles.conf $(TARGET_DIR)/etc/tmpfiles.d/snmpd.conf
cp $(PROFETH_PKGDIR)/default $(TARGET_DIR)/etc/default/profeth
endef
PROFETH_TARGET_FINALIZE_HOOKS += PROFETH_INSTALL_EXTRA
$(eval $(autotools-package))
+24
View File
@@ -0,0 +1,24 @@
#!/bin/sh
# Used by profeth to flash LED(s), only a dummy for now
if [ $# -ne 2 ]; then
echo "Usage: ${0} led_number led_state"
echo " where:"
echo " led_number: LED number. Number 1 for sample app data LED"
echo " Number 2 for mandatory Profinet signal LED"
echo " led_state: 1 for on, 0 for off"
echo " Exit code: 0 on success, 1 on error"
exit 1
fi
LED_NUMBER=$1
LED_STATE=$2
if ! [ "${LED_STATE}" = "0" -o "${LED_STATE}" = "1" ]; then
echo "Wrong LED state: ${LED_STATE}"
exit 1
fi
echo ${LED_STATE} > "/tmp/pnet_led_${LED_NUMBER}.txt"
exit 0
+21
View File
@@ -0,0 +1,21 @@
#rocommunity public
#rwcommunity private
#sysName infix
#sysLocation kernelkit
#syscontact kernelkit@googlegroups.com
#sysServices 10
#master agentx
#agentXTimeout 5
#engineIDType 3
#engineIDNic vlan1
master agentx
agentXSocket /var/run/agentx/master
agentaddress udp:161
view systemonly included .1.3.6.1.2.1.1
view systemonly included .1.3.6.1.2.1.2.2
view systemonly included .1.0.8802.1.1.2
rocommunity public default -V systemonly
rwcommunity private default -V systemonly
+2
View File
@@ -0,0 +1,2 @@
# Explicitly required by p-net, <https://rt-labs.com/docs/p-net/additional_linux_details.html?highlight=ip_local_port_range#setting-linux-ephemeral-port-rang>, but also IANA <https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt>
net.ipv4.ip_local_port_range = 49152 60999
+3
View File
@@ -0,0 +1,3 @@
# For Net-SNMP
d /var/run/agentx - - -
@@ -148,6 +148,13 @@ endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_OPENSSH
endif
ifeq ($(BR2_PACKAGE_PROFETH),y)
define SKELETON_INIT_FINIT_SET_PROFETH
cp $(SKELETON_INIT_FINIT_AVAILABLE)/profeth.conf $(FINIT_D)/available/
endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_PROFETH
endif
ifeq ($(BR2_PACKAGE_QUAGGA),y)
define SKELETON_INIT_FINIT_SET_QUAGGA
cp $(SKELETON_INIT_FINIT_AVAILABLE)/quagga/zebra.conf $(FINIT_D)/available/
@@ -0,0 +1 @@
service [2345789] <pid/snmpd> env:-/etc/default/profeth profeth -s infix -p /etc/profeth $PROFETH_ARGS -- PROFΞTH daemon