-- This file is corresponding to Release 9.1.10.101 from 2014/08/11 00:00:00


---------------------------------------------------------------------------
-- (C)opyright 2007-2014 bintec elmeg GmbH
-- $RCSfile: mib-soip,v $
-- $Revision: 1.7 $
-- $Date: 2014-02-07 10:37:49 $
---------------------------------------------------------------------------

-- **************************** WARNING **********************************
-- * MIB is not finally defined and subjected to change, in terms of     *
-- * variable names, order and meaning.                                  *
-- ***********************************************************************

FEC-SOIP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    IpAddress, Counter32, Gauge32,
    mib-2, enterprises
        FROM SNMPv2-SMI

    TruthValue
        FROM SNMPv2-TC

    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
        FROM SNMPv2-CONF

    bibo
	FROM BINTEC-MIB;


---------------------------------------------------------------------------

soip MODULE-IDENTITY
	LAST-UPDATED "200707041400Z"
	ORGANIZATION "bintec elmeg GmbH"
	CONTACT-INFO
	    "EMail:   info@bintec-elmeg.com
	     Web:     www.bintec-elmeg.com
	    "
	DESCRIPTION
	    "The MIB module for Serial over IP functionality.
	     Contains both config and statistic data."
	REVISION     "200707041400Z"
	DESCRIPTION
	    "SoIP specific MIB."

	::= { bibo 58 }

---------------------------------------------------------------------------

-- **********************************************************************
-- *    soipTable  TABLE
-- **********************************************************************

soipConfigTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF SoipConfigEntry
	MAX-ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
	    "The soipConfigTable contains configuration data of the SoIP module.
	     It configures both the IP and the UART side."
	::= { soip 1 }

	soipConfigEntry OBJECT-TYPE
	    SYNTAX      SoipConfigEntry
	    MAX-ACCESS  not-accessible
	    STATUS      current
	    DESCRIPTION
			"The soipConfigEntry contains configuration data of the SoIP module."
	    INDEX  { soipConfigIndex }
	::= { soipConfigTable 1 }

	SoipConfigEntry ::=
	SEQUENCE {
	    soipConfigIndex			INTEGER,
	    -- ***** UART Config *****
	    soipConfigUartBaud			INTEGER,
	    soipConfigUartDataBits		INTEGER,
	    soipConfigUartParity		INTEGER,
	    soipConfigUartStopBits		INTEGER,
	    soipConfigUartHandshake		INTEGER,
	    soipConfigUartSendGraciousXonXoff	TruthValue,
	    -- ***** IP Config *****
	    soipConfigIpProtocol		INTEGER,
	    soipConfigIpReconnectTimeout	INTEGER,
	    soipConfigIpLocalIp			IpAddress,
	    soipConfigIpLocalPort		INTEGER,
	    soipConfigIpRemoteIp		IpAddress,
	    soipConfigIpRemotePort		INTEGER,
	    soipConfigIpIfIndex			INTEGER,
	    -- ***** Trigger Config *****
	    soipConfigTriggerByteCount		INTEGER,
	    soipConfigTriggerDelay		INTEGER,
	    soipConfigTriggerTimeout		INTEGER,
	    -- ***** Buffer Config *****
	    soipConfigBufferClear		INTEGER
	}
	
	soipConfigIndex OBJECT-TYPE
	    SYNTAX      INTEGER
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"Reference to the used serial port."
	::= { soipConfigEntry 1 }

	-- ***** UART Config *****

	soipConfigUartBaud OBJECT-TYPE
	    SYNTAX      INTEGER (1..115200)
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"Baud rate of serial port."
	    DEFVAL { 9600 }
	::= { soipConfigEntry 2 }

	soipConfigUartDataBits OBJECT-TYPE
	    SYNTAX      INTEGER (7..8)
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"Data bits of serial port."
	    DEFVAL { 8 }
	::= { soipConfigEntry 3 }

	soipConfigUartParity OBJECT-TYPE
	    SYNTAX      INTEGER {
			none(1),
			even(2),
			odd(3)
	    }
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"Type of serial port.
			 none(1) -- No parity bit
			 even(2) -- Even parity bit
			 odd(3)  -- Odd parity bit"
	    DEFVAL { none }
	::= { soipConfigEntry 4 }

	soipConfigUartStopBits OBJECT-TYPE
	    SYNTAX      INTEGER (1..2)
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"Stop bits of serial port."
	    DEFVAL { 1 }
	::= { soipConfigEntry 5 }

	soipConfigUartHandshake OBJECT-TYPE
	    SYNTAX      INTEGER {
			none(1),
			rts-cts(2),
			xon-xoff(3)
	    }
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"Handshake used on serial port.
			 none(1)     -- no handshake
			 rts-cts(2)  -- RTS/CTS signal pair used for handshake (hardware)
			 xon-xoff(3) -- XOn/XOff bytes used for handshake (software)
			                Received XOn/XOff characters are not forwarded via IP."
	    DEFVAL { none }
	::= { soipConfigEntry 6 }

	soipConfigUartSendGraciousXonXoff OBJECT-TYPE
	    SYNTAX      TruthValue
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"Send gracious XOn/XOff.
			 TCP: if IP connection is established/closed
			 UDP: send XOn on startup"
	    DEFVAL { true }
	::= { soipConfigEntry 7 }

	-- ***** IP Config *****

	soipConfigIpProtocol OBJECT-TYPE
	    SYNTAX      INTEGER {
			tcp-server(1),
			tcp-client(2),
			udp(3),
                        delete(15)
	    }
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"IP protocol and mode to use.
			 tcp-server(1) -- Wait for incoming TCP connections
			 tcp-client(2) -- Active connect via TCP
			 udp(3)        -- UDP
                         With delete(15) the entry will be deleted"
	    DEFVAL { tcp-server }
	::= { soipConfigEntry 8 }

	soipConfigIpReconnectTimeout OBJECT-TYPE
	    SYNTAX      INTEGER (0..65535)
	    UNITS	"seconds"
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"TCP client: Retry connect after n seconds if connection is refused or not answered.
			             0 = do not reconnect"
	    DEFVAL { 10 }
	::= { soipConfigEntry 9 }

	soipConfigIpLocalIp OBJECT-TYPE
	    SYNTAX      IpAddress
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"TCP server: accept connection only on this IP.  0=any.
			 TCP client: issue connection from this IP. 0=automatic.
			 UDP unicast: send data from and accept on this IP. 0=automatic.
			 UDP multicast master (1:n): master unicast IP. 0=automatic.
			 UDP multicast slave (1:n): multicast group IP.
			 UDP multicast multi-master (n:m): multicast group IP."
	::= { soipConfigEntry 10 }

	soipConfigIpLocalPort OBJECT-TYPE
	    SYNTAX      INTEGER (0..65535)
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"TCP server: local port to listen on for connections
			 TCP client: local port to issue connection from. 0=automatic.
			 UDP unicast: port to send from / receive on. 0=automatic.
			 UDP multicast: port to send from / receive on. 0=automatic."
	::= { soipConfigEntry 11 }
	
	soipConfigIpRemoteIp OBJECT-TYPE
	    SYNTAX      IpAddress
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"TCP server: accept connection only from this IP.  0=any.
			 TCP client: issue connection to this IP.
			 UDP unicast: send data to this IP.
			 UDP multicast master (1:n): multicast group IP.
			 UDP multicast slave (1:n): master unicast IP.
			 UDP multicast multi-master (n:m): multicast group IP."
	::= { soipConfigEntry 12 }

	soipConfigIpRemotePort OBJECT-TYPE
	    SYNTAX      INTEGER (0..65535)
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"TCP server: remote port to accept connections from. 0=any.
			 TCP client: remote port to connect to
			 UDP unicast: port to send to / receive from.
			 UDP multicast: port to send to / receive on"
	::= { soipConfigEntry 13 }

	soipConfigIpIfIndex OBJECT-TYPE
	    SYNTAX      INTEGER
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"Interface index to bind to.
			 TCP server: ignored
			 TCP client: ignored
			 UDP unicast: ignored
			 UDP multicast: multicast interface index"
	::= { soipConfigEntry 14 }

	-- ***** Trigger Config *****

	soipConfigTriggerByteCount OBJECT-TYPE
	    SYNTAX      INTEGER (1..1460)
	    UNITS	"byte"
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"Send an IP packet after receiving n bytes from serial port."
	    DEFVAL { 128 }
	::= { soipConfigEntry 15 }

	soipConfigTriggerDelay OBJECT-TYPE
	    SYNTAX      INTEGER (0..65535)
	    UNITS	"milliseconds"
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"Send an IP packet n milliseconds after receiving the first byte from serial port.
			 0 = trigger disabled"
	    DEFVAL { 100 }
	::= { soipConfigEntry 16 }

	soipConfigTriggerTimeout OBJECT-TYPE
	    SYNTAX      INTEGER (0..65535)
	    UNITS	"milliseconds"
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"Send an IP packet n milliseconds after receiving the last byte from serial port.
			 0 = trigger disabled"
	    DEFVAL { 0 }
	::= { soipConfigEntry 17 }

	-- ***** Buffer Config *****

	soipConfigBufferClear OBJECT-TYPE
	    SYNTAX      INTEGER {
			no-action(1),
			serial-rx(2),
			serial-tx(3),
			serial-rx-tx(4)
			-- serial-ip-rx(5)
			-- serial-ip-tx(6)
			-- serial-ip-rx-tx(7)
	    }
	    MAX-ACCESS  read-write
	    STATUS      current
	    DESCRIPTION
			"Trigger clearing of buffers. Variable falls back to no-action after clearing the buffers.
			 no-action(1)    -- clear nothing, normal operation
			 serial-rx(2)    -- clear serial Rx buffer 
			 serial-tx(3)    -- clear serial Tx buffer
			 serial-rx-tx(4) -- clear serial Rx and Tx buffer"
	    DEFVAL { no-action }
	::= { soipConfigEntry 18 }


-- **********************************************************************
-- *    soipStatusTable  TABLE
-- **********************************************************************

soipStatusTable OBJECT-TYPE
	SYNTAX      SEQUENCE OF SoipStatusEntry
	MAX-ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
	    "The soipStatusTable contains status and statistic information related
	     to the SoIP interface."
	::= { soip 2 }

	soipStatusEntry OBJECT-TYPE
	    SYNTAX      SoipStatusEntry
	    MAX-ACCESS  not-accessible
	    STATUS      current
	    DESCRIPTION
			"The soipStatusEntry contains status and statistic information
			 of a SoIP interface."
	    INDEX  { soipStatusIndex }
	::= { soipStatusTable 1 }

	SoipStatusEntry ::=
	SEQUENCE {
	    soipStatusIndex			INTEGER,
	    -- ***** UART Statistics *****
	    soipStatusUartRxBytes		Counter32,
	    soipStatusUartTxBytes		Counter32,
	    soipStatusUartRxParityErrors	Counter32,
	    soipStatusUartRxOtherErrors		Counter32,
	    soipStatusUartRxFifoErrors		Counter32,
	    soipStatusUartSentXon		Counter32,
	    soipStatusUartSentXoff		Counter32,
	    soipStatusUartReceivedXon		Counter32,
	    soipStatusUartReceivedXoff		Counter32,
	    -- ***** IP Statistics *****
	    soipStatusIpRxBytes			Counter32,
--	    soipStatusIpRxPackets		Counter32,
	    soipStatusIpTxBytes			Counter32,
--	    soipStatusIpTxPackets		Counter32,
	    soipStatusIpRxFifoErrors		Counter32,
	    -- ***** UART Status *****
	    soipStatusUartLocalHandshakeStatus	INTEGER,
	    soipStatusUartRemoteHandshakeStatus	INTEGER,
--	    soipStatusUartControlLines		BITS,
	    -- ***** Buffer Status *****
--	    soipStatusUartToIpBytesBuffered	Gauge32,
--	    soipStatusIpToUartBytesBuffered	Gauge32,
	    -- ***** IP Status *****
	    soipStatusIpStatus			INTEGER,
	    soipStatusIpLocalIp			IpAddress,
	    soipStatusIpLocalPort		INTEGER,
	    soipStatusIpRemoteIp		IpAddress,
	    soipStatusIpRemotePort		INTEGER
	}

	soipStatusIndex OBJECT-TYPE
	    SYNTAX      INTEGER
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"Reference to the concerned serial port."
	::= { soipStatusEntry 1 }

	-- ***** UART Statistics *****
	
	soipStatusUartRxBytes OBJECT-TYPE
	    SYNTAX      Counter32
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"Successful received bytes on the serial port."
	::= { soipStatusEntry 2 }

	soipStatusUartTxBytes OBJECT-TYPE
	    SYNTAX      Counter32
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"Successful transmitted bytes on the serial port."
	::= { soipStatusEntry 3 }

	soipStatusUartRxParityErrors OBJECT-TYPE
	    SYNTAX      Counter32
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"Receive parity errors on the serial port."
	::= { soipStatusEntry 4 }

	soipStatusUartRxOtherErrors OBJECT-TYPE
	    SYNTAX      Counter32
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"Receive errors of all other types (framing, noise, ...) on the serial port."
	::= { soipStatusEntry 5 }

	soipStatusUartRxFifoErrors OBJECT-TYPE
	    SYNTAX      Counter32
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"Receive buffer overflow on the serial port."
	::= { soipStatusEntry 6 }

	soipStatusUartSentXon OBJECT-TYPE
	    SYNTAX      Counter32
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"XOn bytes sent by the local device on the serial port."
	::= { soipStatusEntry 7 }

	soipStatusUartSentXoff OBJECT-TYPE
	    SYNTAX      Counter32
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"XOff bytes sent by the local device on the serial port."
	::= { soipStatusEntry 8 }

	soipStatusUartReceivedXon OBJECT-TYPE
	    SYNTAX      Counter32
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"XOn bytes received from the remote device on the serial port."
	::= { soipStatusEntry 9 }

	soipStatusUartReceivedXoff OBJECT-TYPE
	    SYNTAX      Counter32
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"XOff bytes received from the remote device on the serial port."
	::= { soipStatusEntry 10 }

	-- ***** IP Statistics *****
	
	soipStatusIpRxBytes OBJECT-TYPE
	    SYNTAX      Counter32
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"Successful received bytes via IP."
	::= { soipStatusEntry 11 }

--	soipStatusIpRxPackets OBJECT-TYPE
--	::= { soipStatusEntry 12 }

	soipStatusIpTxBytes OBJECT-TYPE
	    SYNTAX      Counter32
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"Successful transmitted bytes via IP."
	::= { soipStatusEntry 13 }

--	soipStatusIpTxPackets OBJECT-TYPE
--	::= { soipStatusEntry 14 }

	soipStatusIpRxFifoErrors OBJECT-TYPE
	    SYNTAX      Counter32
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"Receive buffer overflow on IP side."
	::= { soipStatusEntry 15 }

	-- ***** UART Status *****

	soipStatusUartLocalHandshakeStatus OBJECT-TYPE
	    SYNTAX      INTEGER {
			on(1),
			off(2)
	    }
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"Current local handshake status.
			 on(1)  -- receiving enabled
			 off(2) -- receiving disabled"
	::= { soipStatusEntry 16 }

	soipStatusUartRemoteHandshakeStatus OBJECT-TYPE
	    SYNTAX      INTEGER {
			on(1),
			off(2)
	    }
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"Current remote handshake status.
			 on(1)  -- receiving enabled
			 off(2) -- receiving disabled"
	::= { soipStatusEntry 17 }

--	soipStatusUartControlLines OBJECT-TYPE
--	::= { soipStatusEntry 18 }

	-- ***** Buffer Status *****

--	soipStatusUartToIpBytesBuffered OBJECT-TYPE
--	::= { soipStatusEntry 19 }

--	soipStatusIpToUartBytesBuffered OBJECT-TYPE
--	::= { soipStatusEntry 20 }

	-- ***** IP Status *****

	soipStatusIpStatus OBJECT-TYPE
	    SYNTAX      INTEGER {
			not-connected(1),
			connecting(2),
			connected(3),
			conn-refused(4),
			peer-unreabable(5),
			peer-timeout(6)
	    }
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"Current connection status.
			 not-connected(1)   -- not connected
			 connecting(2)      -- connecting
			 connected(3)       -- connected
			 conn-refused(4)    -- connection refused
			 peer-unreabable(5) -- peer unreachable
			 peer-timeout(6)    -- peer not answering (timeout)"
	::= { soipStatusEntry 21 }

	soipStatusIpLocalIp OBJECT-TYPE
	    SYNTAX      IpAddress
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"TCP server: Local IP. 0 = not connected.
			 TCP client: Local IP. 0 = not connected.
			 UDP unicast: Local IP packets get send from.
			 UDP multicast: Local IP packets get send from."
	::= { soipStatusEntry 22 }

	soipStatusIpLocalPort OBJECT-TYPE
	    SYNTAX      INTEGER (0..65535)
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"TCP server: Local port.
			 TCP client: Local port.
			 UDP unicast: Local port packets get send from.
			 UDP multicast: Local port packets get send from."
	::= { soipStatusEntry 23 }

	soipStatusIpRemoteIp OBJECT-TYPE
	    SYNTAX      IpAddress
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"TCP server: Remote IP. 0 = not connected.
			 TCP client: Remote IP. 0 = not connected.
			 UDP unicast: Remote IP the last packet was received from.
			 UDP multicast: Remote IP the last packet was received from."
	::= { soipStatusEntry 24 }

	soipStatusIpRemotePort OBJECT-TYPE
	    SYNTAX      INTEGER (0..65535)
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
			"TCP server: Remote port.
			 TCP client: Remote port.
			 UDP unicast: Remote port the last packet was received from.
			 UDP multicast: Remote port the last packet was received from."
	::= { soipStatusEntry 25 }


-- **********************************************************************
-- *    END
-- **********************************************************************
END
