--******************************************************************************
-- HM-FW-MIB: Managed objects for 
--
-- May 2011
-- 
-- Copyright (c) Hirschmann Automation & Control GmbH 2011
--******************************************************************************

HM2-FW-MIB DEFINITIONS ::= BEGIN

IMPORTS 
	OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE, OBJECT-IDENTITY,
	Integer32, Unsigned32, Counter64
		FROM SNMPv2-SMI	
	RowStatus, DisplayString, TruthValue
		FROM SNMPv2-TC	
	MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
        FROM SNMPv2-CONF
	SnmpAdminString     
		FROM SNMP-FRAMEWORK-MIB                
    InterfaceIndex 
      	FROM IF-MIB
    hm2ConfigurationMibs, HmActionValue, HmTimeSeconds1970, HmEnabledStatus, 
    HmLargeDisplayString   
        FROM HM2-TC-MIB;

hm2FwMib MODULE-IDENTITY
	LAST-UPDATED "201109130000Z"
	ORGANIZATION "Hirschmann Automation and Control GmbH"
	CONTACT-INFO
        "Postal:     Stuttgarter Str. 45-51
                     72654 Neckartenzlingen
                     Germany
         Phone:      +49 - 7127 -14 -0
         E-mail:     hac.support@belden.com"
         DESCRIPTION
         "SNMP interface for Hirschmann Firewall modules.

          Copyright (C) "
         REVISION     "201109130000Z" -- Sep 13, 2011
         DESCRIPTION
         	 "- Modified Interface Mapping Table for L3 and DynFw
         	  - Use HmActionValue instead of TruthValue
         	 "
         REVISION     "201107010000Z" -- July 1, 2011
         DESCRIPTION
         	 "- Modifications to address representation
         	 "
         REVISION     "201106140000Z" -- June 14, 2011
         DESCRIPTION
         	 "- Restructured IF mapping tables
         	  - Added variable for pending actions"
         REVISION     "201105310000Z" -- May 31, 2011
         DESCRIPTION
          "Initial version."
	 ::= { hm2ConfigurationMibs 79 }

hm2FwNotifications 		OBJECT IDENTIFIER 	::= { hm2FwMib 0 }
hm2FwObjects 			OBJECT IDENTIFIER	::= { hm2FwMib 1 }
hm2FwConformance 		OBJECT IDENTIFIER	::= { hm2FwMib 2 }
hm2FwSNMPExtensionGroup	OBJECT IDENTIFIER 	::= { hm2FwMib 3 }

hm2FwGeneralSettings 	OBJECT IDENTIFIER 	::= { hm2FwObjects 1 }
hm2DynFw 				OBJECT IDENTIFIER 	::= { hm2FwObjects 2 }
hm2L3Fw 				OBJECT IDENTIFIER 	::= { hm2FwObjects 3 }
hm2FwLearningMode 		OBJECT IDENTIFIER 	::= { hm2FwObjects 4 }

--******************************************************************************
--                         General Settings Objects
--******************************************************************************

hm2DynFwMaxRules OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Maximum number of allowed rules for dynamic firewalling."
        ::= { hm2FwGeneralSettings 1 }

hm2L3MaxRules OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current	
	DESCRIPTION
		"Maximum number of allowed rules for L3 firewalling."
        ::= { hm2FwGeneralSettings 2 }

hm2ResetStatistics OBJECT-TYPE
	SYNTAX HmActionValue
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
		"Setting this value to action(2) will reset the statistics of the
		 whole firewall module. It will be set to noop(1) automatically
		 after reset."
		 ::= { hm2FwGeneralSettings 3 }

hm2FlushTables OBJECT-TYPE
	SYNTAX HmActionValue
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
		"Setting this value to action(2) will flush all connection tracking states.
		 It will be set to noop(1) automatically after table flush."
		 ::= { hm2FwGeneralSettings 4 }
	 
hm2DefaultPolicy OBJECT-TYPE
	SYNTAX INTEGER {
			 accept(1), 
		         drop(2),
		         reject(3)
			}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
		"The default policy for forwarding packets:
		 o accept(1): Packets matching this rule are accepted and will 
 	 	   be forwarded
 	 	 o drop(2): Packets matching this rule will be silently 
 	 	   discarded
 	 	 o reject(3): Packets matching this rule will be dropped and
 	 	   the originator gets informed by an ICMP message"
 	DEFVAL { accept }
 	 	   ::= { hm2FwGeneralSettings 5 }
 	   
hm2ConnTrackValidateCheckSum OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
		"This value describes, whether the Firewall connection tracking 
		 in the Linux kernel shall validate the protocol checksums.
		 Disable this validation (false) improves routing throughput."
	DEFVAL { true }	 
		 ::={ hm2FwGeneralSettings 6 }

--******************************************************************************
--                         Dynamic Firewall
--******************************************************************************

hm2DynFwRuleAppliedTrap NOTIFICATION-TYPE
	OBJECTS { hm2DynFwRuleIndex }
	STATUS current
	DESCRIPTION
		"A rule of the dynamic firewall was applied. The rule is 
		 identified by the given rule index of the rule table."
		 ::= { hm2FwNotifications 1 }

hm2DynFwRuleAppliedAndLoggedTrap NOTIFICATION-TYPE
	OBJECTS { hm2DynFwRuleIndex }
	STATUS current
	DESCRIPTION
		"A rule of the dynamic firewall was applied and logged according to
		 the current logging mechanism. The rule is identified by the 
		 given rule index of the rule table."
		 ::= { hm2FwNotifications 2 }

hm2DynFwRuleObjects OBJECT IDENTIFIER ::= { hm2DynFw 1 }
	 
hm2DynFwRuleCount OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Number of current dynamic firewalls rules"
	::= { hm2DynFwRuleObjects 1 }

hm2DynFwIfMappingRuleCount OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Number of current DynFw IF mapping entries."
	::={ hm2DynFwRuleObjects 2 }

hm2DynFwRulePendingActions OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"This value describes, whether the DynFW rule table was modified
		 but not yet written to the firewall implementation (set to 
		 true). After writing all modifications to the firewall, the 
		 value switches automatically back to false."
	DEFVAL { false }	 
		 ::={ hm2DynFwRuleObjects 3 }

hm2DynFwCommitPendingActions OBJECT-TYPE
	SYNTAX HmActionValue
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
		"Setting this value to action(2) writes not yet committed changes
		 to the firewall (DynFW and Interface Mapping Table). After 
		 writing all modifications, the value switches automatically 
		 back to noop(1)."
	DEFVAL { noop }	 
		 ::={ hm2DynFwRuleObjects 4 }
	 

hm2DynFwRuleTables OBJECT IDENTIFIER ::= { hm2DynFw 2 }

hm2DynFwRuleTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF Hm2DynFwRuleEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"The list of rules for this dynamic firewall"
	::= { hm2DynFwRuleTables 1 }
	
hm2DynFwRuleEntry OBJECT-TYPE
	SYNTAX Hm2DynFwRuleEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Dynamic firewall rule entry."
	INDEX { hm2DynFwRuleIndex }
	::= { hm2DynFwRuleTable 1 }
		 
Hm2DynFwRuleEntry ::=
	SEQUENCE {
		hm2DynFwRuleIndex Integer32,
		hm2DynFwSourceAddress DisplayString,
		hm2DynFwSourcePort DisplayString,
		hm2DynFwTargetAddress DisplayString,
		hm2DynFwTargetPort DisplayString,
		hm2DynFwProto INTEGER,
		hm2DynFwRuleParams DisplayString,
		hm2DynFwAction INTEGER,
		hm2DynFwLog TruthValue,
		hm2DynFwTrap TruthValue,
		hm2DynFwRowStatus RowStatus,
		hm2DynFwDescription DisplayString
	}
		
hm2DynFwRuleIndex OBJECT-TYPE
	SYNTAX Integer32 ( 1..512 )
	MAX-ACCESS accessible-for-notify
	STATUS current
	DESCRIPTION
		"Rule index of this dynamic firewall rule"
	::= { hm2DynFwRuleEntry 1 }

hm2DynFwSourceAddress OBJECT-TYPE
	SYNTAX DisplayString ( SIZE(1..20) )
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"The source address of the packet to filter. Allowed formats are:
		- keyword 'any'
		- single address ('10.0.0.1')
        - CIDR address range ('10.0.0.0/8')
        - netobject ('$name')
		"
	DEFVAL  { "any" }     
	::= { hm2DynFwRuleEntry 2 }

hm2DynFwSourcePort OBJECT-TYPE
	SYNTAX DisplayString ( SIZE(1..50) )
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"The source port of the packet to filter. Allowed formats are:
		- keyword 'any'
		- single port ('10')
		- port range with first and last port separated by hyphen 
		  ('10-15')
		- comma separated list of ports ('1235,25,123')
		- combination of the points above ('10,25-30,125,1993')

        The number of named ports (1 for each individual port, 2 for port
        ranges) must not exceed 15.
		"
	DEFVAL { "any" }
	::= { hm2DynFwRuleEntry 3 }

hm2DynFwTargetAddress OBJECT-TYPE
	SYNTAX DisplayString ( SIZE(1..20) )
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"The destination address of the packet to filter. Allowed formats are:
		- keyword 'any'
		- single address ('10.0.0.1')
        - CIDR address range ('10.0.0.0/8')
        - netobject ('$name')
		"
	DEFVAL  { "any" }     
	::= { hm2DynFwRuleEntry 4 }

hm2DynFwTargetPort OBJECT-TYPE
	SYNTAX DisplayString ( SIZE(1..50) )
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"The destination port of the packet to filter. Allowed formats are:
		- keyword 'any'
		- single port ('10')
		- port range with first and last port separated by hyphen 
		  ('10-15')
		- comma separated list of ports ('1235,25,123')
		- combination of the points above ('10,25-30,125,1993')

        The number of named ports (1 for each individual port, 2 for port
        ranges) must not exceed 15.
		"
	DEFVAL { "any" }
	::= { hm2DynFwRuleEntry 5 }

hm2DynFwProto OBJECT-TYPE
	SYNTAX		 INTEGER { 
		                   icmp(1), 
		                   igmp(2),
		                   ipip(3),
		                   tcp(4),
		                   udp(5),
		                   esp(6),
		                   ah(7),
		                   icmpv6(8),
		                   any(9)		                 
			}
	MAX-ACCESS 	 read-create
	STATUS 		 current
	DESCRIPTION
		 "The IP protocol (RFC 791) for protocol-independent
                  filtering. The following values are currently
                  supported:
                  o  icmp(1): internet control message protocol (RFC 792)
                  o  igmp(2): internet group management protocol
                  o  ipip(3): IP in IP tunnelling (RFC 1853)
                  o  tcp(4): transmission control protocol (RFC 793)
                  o  udp(5): user datagram protocol (RFC 768)
                  o  esp(6): IPsec encapsulated security payload (RFC 2406)
                  o  ah(7): IPsec authentication header (RFC 2402)
                  o  icmpv6(8): internet control message protocol for IPv6
                  o  any(9): apply to all protocols"
	 DEFVAL  { any }
	 ::= { hm2DynFwRuleEntry 6 }
 
 hm2DynFwRuleParams OBJECT-TYPE
 	 SYNTAX DisplayString ( SIZE(0..50) )
 	 MAX-ACCESS read-create
 	 STATUS current
 	 DESCRIPTION
 	 	 "Additional parameters to this rule as string. 
                  A parameter has the syntax: 
                           <param>=<val>
                  Parameters are separated by a comma.
                  If more than one value is given for a parameter, values are
                  separated by a |-sign
                  Following paramters are defined based on the different 
                  protocols:
                  o icmp: type=<ICMP type> (specify ICMP type to filter)
                          code=<ICMP code> (specify ICMP code to filter)
                  o tcp:  frag=<true/false> (apply to fragments)
                          flags=<SYN/ACK/FIN> (apply to packets with give flags
                  o udp/tcp: state=<new/rel/est> (apply to packets according
                             current state of connection>
                  o general: mac=<MAC> (specify source MAC address for this
                             rule)
                 "
 	 ::= { hm2DynFwRuleEntry 7 }	 	 
 
 
 hm2DynFwAction OBJECT-TYPE
 	 SYNTAX INTEGER { accept(1), drop(2), reject(3) }
 	 MAX-ACCESS read-create
 	 STATUS current
 	 DESCRIPTION
 	 	 "The action of the corresponding rule:
 	 	 o accept(1): Packets matching this rule are accepted and will 
 	 	   be forwarded
 	 	 o drop(2): Packets matching this rule will be silently 
 	 	   discarded
 	 	 o reject(3): Packets matching this rule will be dropped and
 	 	   the originator gets informed by an ICMP message"
 	 ::= { hm2DynFwRuleEntry 8 }

hm2DynFwLog OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"Set to true if application of this rule shall be logged"
	DEFVAL { false }
		::={ hm2DynFwRuleEntry 9 }

hm2DynFwTrap OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"Set to true if application of this rule shall send a trap."
	DEFVAL { false }
	::={ hm2DynFwRuleEntry 10 }

hm2DynFwRowStatus OBJECT-TYPE
	SYNTAX RowStatus
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"This is a standard row status value:
            - active(1): The rule is active. Note that until committed, the rule
              will not be applied.
            - notInService(2): The rule is inactive because of user action.
            - notReady(3): The rule is inactive because of agent action.
            - createAndGo(4): Create the rule with default parameters
              activated.
            - createAndWait(5): Create the rule inactive.
            - destroy(6): Delete the rule. You cannot delete a rule with
              interface mappings to it."
		::= { hm2DynFwRuleEntry 11 }
		
hm2DynFwDescription OBJECT-TYPE
	SYNTAX DisplayString ( SIZE(0..32) )
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"User defined textual description related to this rule."
	DEFVAL  { "" }
	::= { hm2DynFwRuleEntry 12 }

hm2DynFwRuleIfMappingTable OBJECT-TYPE
	SYNTAX SEQUENCE OF Hm2DynFwRuleIfMappingEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Table for mapping L3 rules to interfaces"
		::={ hm2DynFwRuleTables 2 }
	
hm2DynFwRuleIfMappingEntry OBJECT-TYPE
	SYNTAX Hm2DynFwRuleIfMappingEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Entry in rule interface mapping table"
	INDEX { hm2DynFwIfmInterface, hm2DynFwIfmDirection, 
		hm2DynFwIfmRuleIndex } 
		::={ hm2DynFwRuleIfMappingTable 1 }
	
Hm2DynFwRuleIfMappingEntry ::= SEQUENCE {	
	hm2DynFwIfmRuleIndex Integer32,
	hm2DynFwIfmDirection INTEGER,	
	hm2DynFwIfmPriority Unsigned32,
	hm2DynFwIfmInterface InterfaceIndex,
	hm2DynFwIfmRowStatus RowStatus
}

hm2DynFwIfmRuleIndex OBJECT-TYPE
	SYNTAX Integer32 (1..2048)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"The index of the DynFw rule this mapping entry is assigned to.
		 The DynFw rule must exist before creation of mapping entry."
		::={ hm2DynFwRuleIfMappingEntry 1 }
		
	
hm2DynFwIfmDirection OBJECT-TYPE
	SYNTAX INTEGER {
			ingress(1),
			egress(2),
			both(3)
	}
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
        "Meanings:
            - ingress(1): Apply this rule to packets arriving on this interface
            - egress(2): Apply this rule to packets leaving from this interface
            - both(3): Apply this rule to packets coming in and going out on this
              interface.

        If an ingress and an egress interface are given, this is taken to mean
        that the rule shall apply to packets arriving on the ingress interface
        AND to be leaving on the egress interface. A rule without ingress
        interface matches on all packets going out to the egress interface
        given, and vice versa."
		::={ hm2DynFwRuleIfMappingEntry 2 }

hm2DynFwIfmPriority OBJECT-TYPE
	SYNTAX Unsigned32
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
         "The priority is the sorting key for rules in to this interface. They
         don't need to be unique, but no clear order can be assumed among rules
         with the same priority.
		 Priorities are processed in ascending order (0 highest priority)."
		 ::={ hm2DynFwRuleIfMappingEntry 3 } 

hm2DynFwIfmInterface OBJECT-TYPE
	SYNTAX InterfaceIndex
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"The interface this mapping entry is applied to. This has to be either
        an hm2AgentSwitchIpInterfaceIfIndex or an hm2AgentSwitchIpVlanIfIndex.
        Note that for physical interfaces this only works if the corresponding
        hm2AgentSwitchIpInterfaceRoutingMode is set to enable."
		::={ hm2DynFwRuleIfMappingEntry 4 }
	 
hm2DynFwIfmRowStatus OBJECT-TYPE
	SYNTAX RowStatus
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"The RowStatus value for this entry with the usual meanings:
        
            - active(1): The interface mapping is in place
            - notInService(2): The interface mapping is not in place because the
              user said so
            - notReady(3): The interface mapping is not in place because the
              agent said so
            - createAndGo(4): Create this mapping with the default priority and
              activate it.
            - createAndWait(5): Create this mapping deactivated.
            - destroy(6): Destroy this interface mapping."
		::={ hm2DynFwRuleIfMappingEntry 5 }
	
hm2DynFwStats OBJECT IDENTIFIER ::={ hm2DynFw 4 }

hm2DynFwGeneralStats OBJECT IDENTIFIER ::={ hm2DynFwStats 1 }

hm2DynFwStatsTtPck OBJECT-TYPE
	SYNTAX Counter64
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Total number of packets processed by the dynamic firewall"
		::= { hm2DynFwGeneralStats 1 }

hm2DynFwStatsTtPckSize OBJECT-TYPE
	SYNTAX Counter64
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Total number of bytes processed by the dynamic firewall"
		::= { hm2DynFwGeneralStats 2 }

hm2DynFwStatsTtPckDenDrop OBJECT-TYPE
	SYNTAX Counter64
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Total number of packets dropped or denied by the dynamic 
		 firewall"
		::={ hm2DynFwGeneralStats 3 }
	
hm2DynFwStatsTtPckAccepted OBJECT-TYPE
	SYNTAX Counter64
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Total number of packets accepted by the dynamic firewall"
		::={ hm2DynFwGeneralStats 4 }
	
hm2DynFwStatsTables OBJECT IDENTIFIER ::= { hm2DynFwStats 2 }
	
hm2DynFwStatsRuleTable OBJECT-TYPE
	SYNTAX SEQUENCE OF Hm2DynFwStatsRuleEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Table of per-rule statistics of the dynamic firewall"
		::= { hm2DynFwStatsTables 1 }
	
hm2DynFwStatsRuleEntry OBJECT-TYPE
	SYNTAX Hm2DynFwStatsRuleEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Statistics table entry for the dynamic firewall"
	INDEX { hm2DynFwRuleIndex }
	::={ hm2DynFwStatsRuleTable 1 }
	
	Hm2DynFwStatsRuleEntry ::= SEQUENCE {
	hm2DynFwStatsPacketCount Counter64,
	hm2DynFwStatsPacketSize Counter64,	
	hm2DynFwStatsLastApplied HmTimeSeconds1970
}

hm2DynFwStatsPacketCount OBJECT-TYPE
	SYNTAX Counter64
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Number of packets matched by this rule"
		::={ hm2DynFwStatsRuleEntry 1 }
	
hm2DynFwStatsPacketSize OBJECT-TYPE
	SYNTAX Counter64
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Number of bytes processed by this rule"
		::={ hm2DynFwStatsRuleEntry 2 }
	
hm2DynFwStatsLastApplied OBJECT-TYPE
	SYNTAX HmTimeSeconds1970
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Local system time (hm2SystemLocalTime) when the rule was applied the last time"
		::={ hm2DynFwStatsRuleEntry 3 }

--******************************************************************************
--			L3 Firewall
--******************************************************************************

hm2L3RuleAppliedTrap NOTIFICATION-TYPE
	OBJECTS { hm2L3RuleIndex }
	STATUS current
	DESCRIPTION
		"A rule of the L3 firewall was applied. The rule is 
		 identified by the given rule index of the rule table."
		 ::= { hm2FwNotifications 3 }

hm2L3RuleAppliedAndLoggedTrap NOTIFICATION-TYPE
	OBJECTS { hm2L3RuleIndex }
	STATUS current
	DESCRIPTION
		"A rule of the L3 firewall was applied and logged according
		 the current logging mechanism. The rule is identified by the 
		 given rule index of the rule table."
		 ::= { hm2FwNotifications 4 }
	 
hm2L3RuleObjects OBJECT IDENTIFIER ::= { hm2L3Fw 1 } 
	 
hm2L3RuleCount OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Number of current L3 rules"
	::= { hm2L3RuleObjects 1 }

hm2L3IfMappingRuleCount OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Number of current L3 IF mapping entries."
	::={ hm2L3RuleObjects 2 }

hm2L3RulePendingActions OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"This value describes, whether the L3 rule table was modified
		 but not yet written to the firewall implementation (set to 
		 true). After writing all modifications to the firewall, the 
		 value switches automatically back to false."
	DEFVAL { false }	 
		 ::={ hm2L3RuleObjects 3 }

hm2L3CommitPendingActions OBJECT-TYPE
	SYNTAX HmActionValue
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
		"Setting this value to action(2) writes not yet committed changes
		 to the firewall (L3 and Interface Mapping Table). After writing
		 all modifications, the value switches automatically back to 
		 noop(1)."
	DEFVAL { noop }	 
		 ::={ hm2L3RuleObjects 4 }

hm2L3RuleTables OBJECT IDENTIFIER ::= { hm2L3Fw 2 }

hm2L3RuleTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF Hm2L3RuleEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"The list of L3 rules for this firewall"
	::= { hm2L3RuleTables 1 }
	
	 hm2L3RuleEntry OBJECT-TYPE
		SYNTAX Hm2L3RuleEntry
		MAX-ACCESS not-accessible
		STATUS current
		DESCRIPTION
			"L3 rule entry."
		INDEX { hm2L3RuleIndex }
		::= { hm2L3RuleTable 1 }
		 
Hm2L3RuleEntry ::=
	SEQUENCE {
		hm2L3RuleIndex Integer32,
		hm2L3SourceAddress DisplayString,
		hm2L3SourcePort DisplayString,
		hm2L3TargetAddress DisplayString,
		hm2L3TargetPort DisplayString,
		hm2L3Proto INTEGER,
		hm2L3RuleParams DisplayString,
		hm2L3Action INTEGER,
		hm2L3Log TruthValue,
		hm2L3Trap TruthValue,
		hm2L3RowStatus RowStatus,
		hm2L3Description DisplayString,
		hm2DPIProfileIndex Integer32
	}
		
hm2L3RuleIndex OBJECT-TYPE
	SYNTAX Integer32 ( 1..2048 )
	MAX-ACCESS accessible-for-notify
	STATUS current
	DESCRIPTION
		"Rule index of this L3 rule"
	::= { hm2L3RuleEntry 1 }

hm2L3SourceAddress OBJECT-TYPE
	SYNTAX DisplayString ( SIZE(1..20) )
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"The source address of the packet to filter. Allowed formats are:
		- keyword 'any'
		- single address ('10.0.0.1')
        - CIDR address range ('10.0.0.0/8')
        - netobject ('$name')
        - a prepending '!' selects the complement set
		"
	DEFVAL  { "any" }     
	::= { hm2L3RuleEntry 2 }

hm2L3SourcePort OBJECT-TYPE
	SYNTAX DisplayString ( SIZE(1..50) )
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"The source port of the packet to reroute. Allowed formats are:
		- keyword 'any'
		- single port ('10')
		- port range with first and last port separated by hyphen 
		  ('10-15')
		- comma separated list of ports ('1235,25,123')
		- combination of the points above ('10,25-30,125,1993')

        The number of named ports (1 for each individual port, 2 for port
        ranges) must not exceed 15.
		"
	DEFVAL { "any" }
	::= { hm2L3RuleEntry 3 }

hm2L3TargetAddress OBJECT-TYPE
	SYNTAX DisplayString ( SIZE(1..20) )
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"The destination address of the packet to filter. Allowed formats are:
		- keyword 'any'
		- single address ('10.0.0.1')
        - CIDR address range ('10.0.0.0/8')
        - netobject ('$name')
		"
	DEFVAL  { "any" }     
	::= { hm2L3RuleEntry 4 }

hm2L3TargetPort OBJECT-TYPE
	SYNTAX DisplayString ( SIZE(1..50) )
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"The destination port of the packet to. Allowed formats are:
		- keyword 'any'
		- single port ('10')
		- port range with first and last port separated by hyphen 
		  ('10-15')
		- comma separated list of ports ('1235,25,123')
		- combination of the points above ('10,25-30,125,1993')

        The number of named ports (1 for each individual port, 2 for port
        ranges) must not exceed 15.
		"
	DEFVAL { "any" }
	::= { hm2L3RuleEntry 5 }

hm2L3Proto OBJECT-TYPE
	SYNTAX INTEGER { 
		                   icmp(1), 
		                   igmp(2),
		                   ipip(3),
		                   tcp(4),
		                   udp(5),
		                   esp(6),
		                   ah(7),
		                   icmpv6(8),
		                   any(9)		                 
			}
	MAX-ACCESS 	 read-create
	STATUS 		 current
	DESCRIPTION
		 "The IP protocol (RFC 791) for protocol-independent
                  filtering. The following values are currently
                  supported:
                  o  icmp(1): internet control message protocol (RFC 792)
                  o  igmp(2): internet group management protocol
                  o  ipip(3): IP in IP tunnelling (RFC 1853)
                  o  tcp(4): transmission control protocol (RFC 793)
                  o  udp(5): user datagram protocol (RFC 768)
                  o  esp(6): IPsec encapsulated security payload (RFC 2406)
                  o  ah(7): IPsec authentication header (RFC 2402)
                  o  icmpv6(8): internet control message protocol for IPv6
                  o  any(9): apply to all protocols"
	 DEFVAL  { any }
	 ::= { hm2L3RuleEntry 6 }

 hm2L3RuleParams OBJECT-TYPE
 	 SYNTAX DisplayString ( SIZE(0..50) )
 	 MAX-ACCESS read-create
 	 STATUS current
 	 DESCRIPTION
 	 	 "Additional parameters to this rule as string. 
                  A parameter has the syntax: 
                           <param>=<val>
                  Parameters are separated by a comma.
                  If more than one value is given for a parameter, values are
                  separated by a |-sign (pipe).
                  Following parameters are defined based on the different 
                  protocols:
                  o icmp: type=<ICMP type> (specify ICMP type to filter)
                          code=<ICMP code> (specify ICMP code to filter)
                  o tcp:  flags=<SYN/ACK/FIN> (apply to packets with given flags)
                  o general: state=<new/rel/est> (apply to packets according to
                             current state of connection>)
                             mac=<MAC> (specify source MAC address for this rule)
                             frag=<true/false> (apply to fragments)
                 "
 	 ::= { hm2L3RuleEntry 7 }	 	 

hm2L3Action OBJECT-TYPE
 	 SYNTAX INTEGER {
			accept(1),
			drop(2),
			reject(3),
			enforce-modbus(4),
			enforce-opc(5),
			enforce-iec104(6),
			enforce-ethernetip(7)
 	 }
 	 MAX-ACCESS read-create
 	 STATUS current
 	 DESCRIPTION
 	 	 "The action of the corresponding rule:
 	 	 o accept(1): Packets matching this rule are accepted and will 
 	 	   be forwarded
 	 	 o drop(2): Packets matching this rule will be silently 
 	 	   discarded
 	 	 o reject(3): Packets matching this rule will be dropped and
 	 	   the originator gets informed by an ICMP message
 	 	 o enforce-modbus(4): Packets matching this rule are enforced by
	 	   modbus enforcer and will be forwarded or discarded.
	 	   The selected protocol should be tcp or udp
	 	 o enforce-opc(5): Packets matching this rule are enforced by
	 	   opc enforcer and will be forwarded or discarded.
	 	   The selected protocol should be tcp
	 	 o enforce-iec104(6): Packets matching this rule are enforced by
	 	   IEC104 enforcer and will be forwarded or discarded.
	 	   The selected protocol should be tcp
	 	 o enforce-ethernetip(7): Packets matching this rule are enforced by
	 	   Ethernet/IP enforcer and will be forwarded or discarded.
	 	   The selected protocol should be tcp"
 	 ::= { hm2L3RuleEntry 8 }

hm2L3Log OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"Set to true if application of this rule shall be logged"
	DEFVAL { false }
		::={ hm2L3RuleEntry 9 }

hm2L3Trap OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"Set to true if application of this rule shall send a trap."
	DEFVAL { false }
	::={ hm2L3RuleEntry 10 }

hm2L3RowStatus OBJECT-TYPE
	SYNTAX RowStatus
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"This is a standard row status value:
            - active(1): The rule is active. Note that until committed, the rule
              will not be applied. You cannot activate the rule
              if an enforcer mappings to an inactive profile.
            - notInService(2): The rule is inactive because of user action.
            - notReady(3): The rule is inactive because of agent action.
            - createAndGo(4): Create the rule with default parameters
              activated.
            - createAndWait(5): Create the rule inactive.
            - destroy(6): Delete the rule. You cannot delete a rule with
              interface mappings to it."
		::= { hm2L3RuleEntry 11 }

hm2L3Description OBJECT-TYPE
	SYNTAX DisplayString ( SIZE(0..32) )
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"User defined textual description related to this rule."
	DEFVAL  { "" }
	::= { hm2L3RuleEntry 12 }

hm2DPIProfileIndex OBJECT-TYPE
	SYNTAX Integer32 (0..32)
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"The index of the DPI profile this rule is assigned to
		depending on enforcer action.
		Value 0 no DPI profile this rule is assigned to.
		You cannot assign the rule to an inactive profile
		if an active enforcer will mapping to it."
	DEFVAL { 0 }
	::= { hm2L3RuleEntry 13 }

hm2L3RuleIfMappingTable OBJECT-TYPE
	SYNTAX SEQUENCE OF Hm2L3RuleIfMappingEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Table for mapping L3 rules to interfaces"
		::={ hm2L3RuleTables 2 }
	
hm2L3RuleIfMappingEntry OBJECT-TYPE
	SYNTAX Hm2L3RuleIfMappingEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Entry in rule interface mapping table"
	INDEX { hm2L3IfmInterface, hm2L3IfmDirection, hm2L3IfmRuleIndex } 
		::={ hm2L3RuleIfMappingTable 1 }

Hm2L3RuleIfMappingEntry ::= SEQUENCE {	
	hm2L3IfmRuleIndex Integer32,
	hm2L3IfmDirection INTEGER,
	hm2L3IfmPriority Unsigned32,
	hm2L3IfmInterface InterfaceIndex,
	hm2L3IfmRowStatus RowStatus
}

hm2L3IfmRuleIndex OBJECT-TYPE
	SYNTAX Integer32 (1..2048)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"The index of the L3 rule this mapping entry is assigned to.
		 The rule must exist before the mapping entry can be created."
		::={ hm2L3RuleIfMappingEntry 1 }

	
hm2L3IfmDirection OBJECT-TYPE
	SYNTAX INTEGER {
			ingress(1),
			egress(2),
			both(3)
	}
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
        "Meanings:
            - ingress(1): Apply this rule to packets arriving on this interface
            - egress(2): Apply this rule to packets leaving from this interface
            - both(3): Apply this rule to packets coming in and going out on this
              interface.

        If an ingress and an egress interface are given, this is taken to mean
        that the rule shall apply to packets arriving on the ingress interface
        AND to-be leaving on the egress interface. A rule without ingress
        interface matches on all packets going out to the egress interface
        given, and vice versa."
		::={ hm2L3RuleIfMappingEntry 2 }
	
hm2L3IfmPriority OBJECT-TYPE
	SYNTAX Unsigned32
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
         "The priority is the sorting key for rules in to this interface. They
         don't need to be unique, but no clear order can be assumed among rules
         with the same priority.
		 Priorities are processed in ascending order (0 highest 
		 priority."
		::={ hm2L3RuleIfMappingEntry 3 }
	
hm2L3IfmInterface OBJECT-TYPE
	SYNTAX InterfaceIndex
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"The interface this mapping entry is assigned to. This has to be either
        an hm2AgentSwitchIpInterfaceIfIndex or an hm2AgentSwitchIpVlanIfIndex.
        Note that for physical interfaces this only works if the corresponding
        hm2AgentSwitchIpInterfaceRoutingMode is set to enable."
		::={ hm2L3RuleIfMappingEntry 4 }
	
hm2L3IfmRowStatus OBJECT-TYPE
	SYNTAX RowStatus
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"The RowStatus value for this entry with the usual meanings:
        
            - active(1): The interface mapping is in place
            - notInService(2): The interface mapping is not in place because the
              user said so
            - notReady(3): The interface mapping is not in place because the
              agent said so
            - createAndGo(4): Create this mapping with the default priority and
              activate it.
            - createAndWait(5): Create this mapping deactivated.
            - destroy(6): Destroy this interface mapping."
		::={ hm2L3RuleIfMappingEntry 5 }
	 
hm2L3Stats OBJECT IDENTIFIER ::={ hm2L3Fw 4 }

hm2L3GeneralStats OBJECT IDENTIFIER ::= { hm2L3Stats 1 }

hm2L3StatsTotalPck OBJECT-TYPE
	SYNTAX Counter64
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Total number of packets processed by the L3 firewall"
		::= { hm2L3GeneralStats 1 }

hm2L3StatsTotalPckSize OBJECT-TYPE
	SYNTAX Counter64
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Total number of bytes processed by the L3 firewall"
		::= { hm2L3GeneralStats 2 }
	
hm2L3StatsTotalPckDenDrop OBJECT-TYPE
	SYNTAX Counter64
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Total number of packets dropped or denied by the L3 firewall"
		::={ hm2L3GeneralStats 3 }
	
hm2L3StatsTotalPckAccepted OBJECT-TYPE
	SYNTAX Counter64
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Total number of packets accepted by the L3 firewall"
		::={ hm2L3GeneralStats 4 }

hm2L3StatsTables OBJECT IDENTIFIER ::= { hm2L3Stats 2 }
	
hm2L3StatsRuleTable OBJECT-TYPE
	SYNTAX SEQUENCE OF Hm2L3StatsRuleEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Table of per-rule statistics of the L3 firewall"
		::= { hm2L3StatsTables 1 }
	
hm2L3StatsRuleEntry OBJECT-TYPE
	SYNTAX Hm2L3StatsRuleEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Statistics table entry for the L3 firewall"
	INDEX { hm2L3RuleIndex }
	::={ hm2L3StatsRuleTable 1 }
	
Hm2L3StatsRuleEntry ::= SEQUENCE {
	hm2L3StatsPacketCount Counter64,	
	hm2L3StatsPacketSize Counter64,	
	hm2L3StatsLastApplied HmTimeSeconds1970
}

hm2L3StatsPacketCount OBJECT-TYPE
	SYNTAX Counter64
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Number of packets matched by this rule"
		::={ hm2L3StatsRuleEntry 1 }

hm2L3StatsPacketSize OBJECT-TYPE
	SYNTAX Counter64
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Number of bytes processed by this rule"
		::={ hm2L3StatsRuleEntry 2 }
	
hm2L3StatsLastApplied OBJECT-TYPE
	SYNTAX HmTimeSeconds1970
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Time of last application of the rule in seconds since the Unix epoch."
		::={ hm2L3StatsRuleEntry 3 }

hm2DPIProfileModbusObjects OBJECT IDENTIFIER ::= { hm2L3Fw 11 } 

hm2DPIProfileModbusPendingActions OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"This value describes, whether the DPI MODBUS profile table was modified
		 but not yet written to the enforcer implementation (set to 
		 true). After writing all modifications to the enforcer, the 
		 value switches automatically back to false."
	DEFVAL { false }	 
	::= { hm2DPIProfileModbusObjects 1 }

hm2DPIProfileModbusCommitPendingActions OBJECT-TYPE
	SYNTAX HmActionValue
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
		"Setting this value to action(2) writes not yet committed changes
		 to the enforcer (DPI MODBUS Profile Table). After writing
		 all modifications, the value switches automatically back to 
		 noop(1)."
	DEFVAL { noop }	 
	::= { hm2DPIProfileModbusObjects 2 }

hm2DPIProfileOpcObjects OBJECT IDENTIFIER ::= { hm2L3Fw 12 } 

hm2DPIProfileOpcPendingActions OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"This value describes, whether the L3 OPC profile table was modified
		 but not yet written to the enforcer implementation (set to 
		 true). After writing all modifications to the enforcer, the 
		 value switches automatically back to false."
	DEFVAL { false }	 
	::= { hm2DPIProfileOpcObjects 1 }

hm2DPIProfileOpcCommitPendingActions OBJECT-TYPE
	SYNTAX HmActionValue
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
		"Setting this value to action(2) writes not yet committed changes
		 to the enforcer (DPI OPC Profile Table). After writing
		 all modifications, the value switches automatically back to 
		 noop(1)."
	DEFVAL { noop }	 
	::= { hm2DPIProfileOpcObjects 2 }

hm2DPIProfileIEC104Objects OBJECT IDENTIFIER ::= { hm2L3Fw 13 } 

hm2DPIProfileIEC104PendingActions OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"This value describes, whether the DPI IEC104 profile table was modified
		 but not yet written to the enforcer implementation (set to 
		 true). After writing all modifications to the enforcer, the 
		 value switches automatically back to false."
	::= { hm2DPIProfileIEC104Objects 1 }

hm2DPIProfileIEC104CommitPendingActions OBJECT-TYPE
	SYNTAX HmActionValue
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
		"Setting this value to action(2) writes not yet committed changes
		 to the enforcer (DPI IEC104 Profile Table). After writing
		 all modifications, the value switches automatically back to 
		 noop(1)."
	DEFVAL { noop }	 
	::= { hm2DPIProfileIEC104Objects 2 }

hm2DPIProfileEnipObjects OBJECT IDENTIFIER ::= { hm2L3Fw 14 } 

hm2DPIProfileEnipPendingActions OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"This value describes, whether the DPI EthernetIP profile table was modified
		 but not yet written to the enforcer implementation (set to 
		 true). After writing all modifications to the enforcer, the 
		 value switches automatically back to false."
	::= { hm2DPIProfileEnipObjects 1 }

hm2DPIProfileEnipCommitPendingActions OBJECT-TYPE
	SYNTAX HmActionValue
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
		"Setting this value to action(2) writes not yet committed changes
		 to the enforcer (DPI EthernetIP Profile Table). After writing
		 all modifications, the value switches automatically back to 
		 noop(1)."
	DEFVAL { noop }	 
	::= { hm2DPIProfileEnipObjects 2 }

hm2DPICommandEnipObjects OBJECT IDENTIFIER ::= { hm2L3Fw 15 } 

hm2DPICommandEnipUserIndexStart OBJECT-TYPE
	SYNTAX Integer32 ( 1..256 )
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Returns the index from which user defined entries may be inserted in
		 the Ethernet IP command table. Lower indices are reserved for default
		 entries and should not be modified."
	::= { hm2DPICommandEnipObjects 1 }

hm2DPICommandEnipNextFreeIndex OBJECT-TYPE
	SYNTAX Integer32 ( 1..256 )
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Returns the lowest unused index of the Ethernet IP command table."
	::= { hm2DPICommandEnipObjects 2 }

hm2DPIProfileTables OBJECT IDENTIFIER ::= { hm2L3Fw 21 }

hm2DPIProfileModbusTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF Hm2DPIProfileModbusEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"The list of DPI MODBUS profiles for this enforcer"
	::= { hm2DPIProfileTables 1 }

hm2DPIProfileModbusEntry OBJECT-TYPE
	SYNTAX Hm2DPIProfileModbusEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"DPI MODBUS profile entry."
	INDEX { hm2DPIProfileModbusIndex }
	::= { hm2DPIProfileModbusTable 1 }

Hm2DPIProfileModbusEntry ::=
	SEQUENCE {
		hm2DPIProfileModbusIndex Integer32,
		hm2DPIProfileModbusDescription DisplayString,
		hm2DPIProfileModbusFunctionType INTEGER,
		hm2DPIProfileModbusFunctionCodeList DisplayString,
		hm2DPIProfileModbusUnitIdentifierList DisplayString,
		hm2DPIProfileModbusSanityCheck TruthValue,
		hm2DPIProfileModbusException TruthValue,
		hm2DPIProfileModbusReset TruthValue,
		hm2DPIProfileModbusRowStatus RowStatus
	}

hm2DPIProfileModbusIndex OBJECT-TYPE
	SYNTAX Integer32 ( 1..32 )
	MAX-ACCESS accessible-for-notify
	STATUS current
	DESCRIPTION
		"Profile index of this DPI MODBUS profile"
	::= { hm2DPIProfileModbusEntry 1 }

hm2DPIProfileModbusDescription OBJECT-TYPE
	SYNTAX DisplayString ( SIZE(0..32) )
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"User defined textual description related to this profile."
	DEFVAL { "modbus" }
	::= { hm2DPIProfileModbusEntry 2 }

hm2DPIProfileModbusFunctionType OBJECT-TYPE
 	 SYNTAX INTEGER {
			readonly(1),
			readwrite(2),
			programming(3),
			all(4),
			advanced(5)
 	 }
 	 MAX-ACCESS read-create
 	 STATUS current
 	 DESCRIPTION
 	 	 "The function types of the corresponding function codes:
 	 	 o readonly(1): Selects read only function codes for the function code list.
 	 	 o readwrite(2): Selects read write function codes for the function code list.
 	 	 o programming(3): Selects programming function codes for the function code list.
 	 	 o all(4): Selects all possible function codes for the function code list. Any function code will be allowed.
	 	 o advanced(5): Keeps the function code list from the previous selection and makes it editable by the user."
	DEFVAL { readonly }
	::= { hm2DPIProfileModbusEntry 3 }

hm2DPIProfileModbusFunctionCodeList OBJECT-TYPE
 	 SYNTAX DisplayString ( SIZE(1..1400) )
 	 MAX-ACCESS read-create
 	 STATUS current
 	 DESCRIPTION
		"The function codes for this enforcer as string.
		A function code has the syntax:
			<val>
		Function codes are separated by a comma.
		If more than one value is given for a function code, values are
		separated by a | -sign (pipe).
		Following function codes are defined:
			<1..255>|<0-65535>|<0-65535> (apply to packets with given function codes <1..255>, address range <0-65535>, address range <0-65535>)
			1|<0-65535> (apply to packets with given function code read coils, coil address range <0-65535>)
			2|<0-65535> (apply to packets with given function code read discrete inputs, input address range <0-65535>)
			3|<0-65535> (apply to packets with given function code read holding registers, register address range <0-65535>)
			4|<0-65535> (apply to packets with given function code read input registers, register address range <0-65535>)
			5|<0-65535> (apply to packets with given function code write single coil, coil address range <0-65535>)
			6|<0-65535> (apply to packets with given function code write single register, register address range <0-65535>)
			7 (apply to packets with given function code read exception status)
			8 (apply to packets with given function code diagnostic)
			11 (apply to packets with given function code get com event counter)
			12 (apply to packets with given function code get comm event log)
			13 (apply to packets with given function code program (584/984))
			14 (apply to packets with given function code poll (584/984))
			15|<0-65535> (apply to packets with given function code write multiple coils, coil address range <0-65535>)
			16|<0-65535> (apply to packets with given function code write multiple registers, register address range <0-65535>)
			17 (apply to packets with given function code report slave id)
			20 (apply to packets with given function code read file record)
			21 (apply to packets with given function code write file record)
			22|<0-65535> (apply to packets with given function code mask write register, register address range <0-65535>)
			23|<0-65535>|<0-65535> (apply to packets with given function code read/write multiple registers, read address range <0-65535>, write address range <0-65535>)
			24|<0-65535> (apply to packets with given function code read fifo queue, pointer address range <0-65535>)
			40 (apply to packets with given function code program (concept))
			42 (apply to packets with given function code concept symbol table)
			43 (apply to packets with given function code encapsulated interface transport)
			48 (apply to packets with given function code advantech co. ltd. - management functions)
			66 (apply to packets with given function code scan data inc. - expanded read holding registers)
			67 (apply to packets with given function code scan data inc. - expanded write holding registers)
			90 (apply to packets with given function code unity programming/ofs)
			100 (apply to packets with given function code scattered register read)
			125 (apply to packets with given function code schneider electric - firmware replacement)
			126 (apply to packets with given function code schneider electric - program)"
	DEFVAL  { "1,2,3,4,7,11,12,17,20,24" }
	::= { hm2DPIProfileModbusEntry 4 }

hm2DPIProfileModbusUnitIdentifierList OBJECT-TYPE
 	 SYNTAX DisplayString ( SIZE(1..1400) )
 	 MAX-ACCESS read-create
 	 STATUS current
 	 DESCRIPTION
		"Unit identifiers for this enforcer as string.
		A unit identifier has the syntax:
			<val>
		To specify no options, the value 'none' must be given.
		Unit identifiers are separated by a comma.
		Following unit identifiers are defined:
			<0..255> (apply to packets for which a
			unit identifier is set)"
	DEFVAL { "none" }
	::= { hm2DPIProfileModbusEntry 5 }

hm2DPIProfileModbusSanityCheck OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"Set to true if apply to packets for which a
		sanity check including format and specification shall be done"
	DEFVAL { true }
	::= { hm2DPIProfileModbusEntry 6 }

hm2DPIProfileModbusException OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"Set to true if apply to packets for which a
		device exception message shall be sent"
	DEFVAL { false }
	::= { hm2DPIProfileModbusEntry 7 }

hm2DPIProfileModbusReset OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"Set to true if apply to packets for which a
		reset connection message shall be sent"
	DEFVAL { true }
	::= { hm2DPIProfileModbusEntry 8 }

hm2DPIProfileModbusRowStatus OBJECT-TYPE
	SYNTAX RowStatus
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"This is a standard row status value:
            - active(1): The profile is active. You cannot modify it.
            - notInService(2): The profile is inactive because of user action.
              You cannot inactivate the profile if an active enforcer mappings to it.
            - notReady(3): The profile is inactive because of agent action.
            - createAndGo(4): Create the profile with default parameters
              activated.
            - createAndWait(5): Create the profile inactive.
            - destroy(6): Delete the profile.
              You cannot delete the active profile or if an enforcer mappings to it."
	::= { hm2DPIProfileModbusEntry 9 }

hm2DPIProfileOpcTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF Hm2DPIProfileOpcEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"The list of DPI OPC profiles for this enforcer"
	::= { hm2DPIProfileTables 2 }

hm2DPIProfileOpcEntry OBJECT-TYPE
	SYNTAX Hm2DPIProfileOpcEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"DPI OPC profile entry."
	INDEX { hm2DPIProfileOpcIndex }
	::= { hm2DPIProfileOpcTable 1 }

Hm2DPIProfileOpcEntry ::=
	SEQUENCE {
		hm2DPIProfileOpcIndex Integer32,
		hm2DPIProfileOpcDescription DisplayString,
		hm2DPIProfileOpcSanityCheck TruthValue,
		hm2DPIProfileOpcFragmentCheck TruthValue,
		hm2DPIProfileOpcTimeoutConnect Unsigned32,
		hm2DPIProfileOpcRowStatus RowStatus
	}

hm2DPIProfileOpcIndex OBJECT-TYPE
	SYNTAX Integer32 ( 1..32 )
	MAX-ACCESS accessible-for-notify
	STATUS current
	DESCRIPTION
		"Profile index of this DPI OPC profile"
	::= { hm2DPIProfileOpcEntry 1 }

hm2DPIProfileOpcDescription OBJECT-TYPE
	SYNTAX DisplayString ( SIZE(0..32) )
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"User defined textual description related to this profile."
	DEFVAL { "opc" }
	::= { hm2DPIProfileOpcEntry 2 }

hm2DPIProfileOpcSanityCheck OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"Set to true if apply to packets for which a
		sanity check including format and specification shall be done"
	DEFVAL { true }
	::= { hm2DPIProfileOpcEntry 3 }

hm2DPIProfileOpcFragmentCheck OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"Set to true if apply to packets for which a
		fragment check shall be done"
	DEFVAL { true }
	::= { hm2DPIProfileOpcEntry 4 }

hm2DPIProfileOpcTimeoutConnect OBJECT-TYPE
	SYNTAX      Unsigned32 (0..60)
	MAX-ACCESS  read-create
	STATUS      current
	DESCRIPTION
		"Set to nonzero if apply to packets for which a
		timeout at connect in seconds shall be done.
		Value 0 disables this match criteria."
	DEFVAL { 5 }
	::= { hm2DPIProfileOpcEntry 5 }

hm2DPIProfileOpcRowStatus OBJECT-TYPE
	SYNTAX RowStatus
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"This is a standard row status value:
            - active(1): The profile is active. You cannot modify it.
            - notInService(2): The profile is inactive because of user action.
              You cannot inactivate the profile if an active enforcer mappings to it.
            - notReady(3): The profile is inactive because of agent action.
            - createAndGo(4): Create the profile with default parameters
              activated.
            - createAndWait(5): Create the profile inactive.
            - destroy(6): Delete the profile.
              You cannot delete the active profile or if an enforcer mappings to it."
	::= { hm2DPIProfileOpcEntry 6 }

hm2DPIProfileIEC104Table OBJECT-TYPE 
	SYNTAX SEQUENCE OF Hm2DPIProfileIEC104Entry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"The list of DPI IEC104 profiles for this enforcer"
	::= { hm2DPIProfileTables 3 }

hm2DPIProfileIEC104Entry OBJECT-TYPE
	SYNTAX Hm2DPIProfileIEC104Entry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"DPI IEC104 profile entry."
	INDEX { hm2DPIProfileIEC104Index }
	::= { hm2DPIProfileIEC104Table 1 }

Hm2DPIProfileIEC104Entry ::=
	SEQUENCE {
		hm2DPIProfileIEC104Index Integer32,
		hm2DPIProfileIEC104Description SnmpAdminString,
		hm2DPIProfileIEC104FunctionType INTEGER,
		hm2DPIProfileIEC104TypeIDList BITS,
		hm2DPIProfileIEC104OriginatorAddressList BITS,
		hm2DPIProfileIEC104CommonAddressList HmLargeDisplayString,
		hm2DPIProfileIEC104SanityCheck HmEnabledStatus,
		hm2DPIProfileIEC104Reset HmEnabledStatus,
		hm2DPIProfileIEC104Debug HmEnabledStatus,
		hm2DPIProfileIEC104RowStatus RowStatus
	}

hm2DPIProfileIEC104Index OBJECT-TYPE
	SYNTAX Integer32 ( 1..32 )
	MAX-ACCESS accessible-for-notify
	STATUS current
	DESCRIPTION
		"Profile index of this DPI IEC104 profile"
	::= { hm2DPIProfileIEC104Entry 1 }

hm2DPIProfileIEC104Description OBJECT-TYPE
	SYNTAX SnmpAdminString ( SIZE(0..128) )
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"User defined textual description related to this profile."
	DEFVAL { "iec104" }
	::= { hm2DPIProfileIEC104Entry 2 }

hm2DPIProfileIEC104FunctionType OBJECT-TYPE
 	 SYNTAX INTEGER {
			readonly(1),
			readwrite(2),
			common(3),
			all(4),
			advanced(5)
 	 }
 	 MAX-ACCESS read-create
 	 STATUS current
 	 DESCRIPTION
 	 	 "The function types of the corresponding type IDs:
 	 	 o readonly(1): Selects read only type IDs for the type ID list.
 	 	 o readwrite(2): Selects read write type IDs for the type ID list.
 	 	 o common(3): Selects common type IDs for the type ID list.
 	 	 o all(4): Selects all possible type IDs for the type ID list. Any type ID will be allowed.
	 	 o advanced(5): Keeps the type ID list from the previous selection and makes it editable by the user."
	DEFVAL { readonly }
	::= { hm2DPIProfileIEC104Entry 3 }

hm2DPIProfileIEC104TypeIDList OBJECT-TYPE
 	 SYNTAX BITS {
		invalid-0(0),
		m-sp-na-1(1),
		m-sp-ta-1(2),
		m-dp-na-1(3),
		m-dp-ta-1(4),
		m-st-na-1(5),
		m-st-ta-1(6),
		m-bo-na-1(7),
		m-bo-ta-1(8),
		m-me-na-1(9),
		m-me-ta-1(10),
		m-me-nb-1(11),
		m-me-tb-1(12),
		m-me-nc-1(13),
		m-me-tc-1(14),
		m-it-na-1(15),
		m-it-ta-1(16),
		m-ep-ta-1(17),
		m-ep-tb-1(18),
		m-ep-tc-1(19),
		m-ps-na-1(20),
		m-me-nd-1(21),
		reserved-22(22),
		reserved-23(23),
		reserved-24(24),
		reserved-25(25),
		reserved-26(26),
		reserved-27(27),
		reserved-28(28),
		reserved-29(29),
		m-sp-tb-1(30),
		m-dp-tb-1(31),
		m-st-tb-1(32),
		m-bo-tb-1(33),
		m-me-td-1(34),
		m-me-te-1(35),
		m-me-tf-1(36),
		m-it-tb-1(37),
		m-ep-td-1(38),
		m-ep-te-1(39),
		m-ep-tf-1(40),
		reserved-41(41),
		reserved-42(42),
		reserved-43(43),
		reserved-44(44),
		c-sc-na-1(45),
		c-dc-na-1(46),
		c-rc-na-1(47),
		c-se-na-1(48),
		c-se-nb-1(49),
		c-se-nc-1(50),
		c-bo-na-1(51),
		reserved-52(52),
		reserved-53(53),
		reserved-54(54),
		reserved-55(55),
		reserved-56(56),
		reserved-57(57),
		c-sc-ta-1(58),
		c-dc-ta-1(59),
		c-rc-ta-1(60),
		c-se-ta-1(61),
		c-se-tb-1(62),
		c-se-tc-1(63),
		c-bo-ta-1(64),
		reserved-65(65),
		reserved-66(66),
		reserved-67(67),
		reserved-68(68),
		reserved-69(69),
		m-ei-na-1(70),
		reserved-71(71),
		reserved-72(72),
		reserved-73(73),
		reserved-74(74),
		reserved-75(75),
		reserved-76(76),
		reserved-77(77),
		reserved-78(78),
		reserved-79(79),
		reserved-80(80),
		reserved-81(81),
		reserved-82(82),
		reserved-83(83),
		reserved-84(84),
		reserved-85(85),
		reserved-86(86),
		reserved-87(87),
		reserved-88(88),
		reserved-89(89),
		reserved-90(90),
		reserved-91(91),
		reserved-92(92),
		reserved-93(93),
		reserved-94(94),
		reserved-95(95),
		reserved-96(96),
		reserved-97(97),
		reserved-98(98),
		reserved-99(99),
		c-ic-na-1(100),
		c-ci-na-1(101),
		c-rd-na-1(102),
		c-cs-na-1(103),
		c-ts-nb-1(104),
		c-rp-nc-1(105),
		c-cd-na-1(106),
		c-ts-ta-1(107),
		reserved-108(108),
		reserved-109(109),
		p-me-na-1(110),
		p-me-nb-1(111),
		p-me-nc-1(112),
		p-ac-na-1(113),
		reserved-114(114),
		reserved-115(115),
		reserved-116(116),
		reserved-117(117),
		reserved-118(118),
		reserved-119(119),
		f-fr-na-1(120),
		f-sr-na-1(121),
		f-sc-na-1(122),
		f-ls-na-1(123),
		f-af-na-1(124),
		f-sg-na-1(125),
		f-dr-ta-1(126),
		f-sc-nb-1(127),
		custom-128(128),
		custom-129(129),
		custom-130(130),
		custom-131(131),
		custom-132(132),
		custom-133(133),
		custom-134(134),
		custom-135(135),
		custom-136(136),
		custom-137(137),
		custom-138(138),
		custom-139(139),
		custom-140(140),
		custom-141(141),
		custom-142(142),
		custom-143(143),
		custom-144(144),
		custom-145(145),
		custom-146(146),
		custom-147(147),
		custom-148(148),
		custom-149(149),
		custom-150(150),
		custom-151(151),
		custom-152(152),
		custom-153(153),
		custom-154(154),
		custom-155(155),
		custom-156(156),
		custom-157(157),
		custom-158(158),
		custom-159(159),
		custom-160(160),
		custom-161(161),
		custom-162(162),
		custom-163(163),
		custom-164(164),
		custom-165(165),
		custom-166(166),
		custom-167(167),
		custom-168(168),
		custom-169(169),
		custom-170(170),
		custom-171(171),
		custom-172(172),
		custom-173(173),
		custom-174(174),
		custom-175(175),
		custom-176(176),
		custom-177(177),
		custom-178(178),
		custom-179(179),
		custom-180(180),
		custom-181(181),
		custom-182(182),
		custom-183(183),
		custom-184(184),
		custom-185(185),
		custom-186(186),
		custom-187(187),
		custom-188(188),
		custom-189(189),
		custom-190(190),
		custom-191(191),
		custom-192(192),
		custom-193(193),
		custom-194(194),
		custom-195(195),
		custom-196(196),
		custom-197(197),
		custom-198(198),
		custom-199(199),
		custom-200(200),
		custom-201(201),
		custom-202(202),
		custom-203(203),
		custom-204(204),
		custom-205(205),
		custom-206(206),
		custom-207(207),
		custom-208(208),
		custom-209(209),
		custom-210(210),
		custom-211(211),
		custom-212(212),
		custom-213(213),
		custom-214(214),
		custom-215(215),
		custom-216(216),
		custom-217(217),
		custom-218(218),
		custom-219(219),
		custom-220(220),
		custom-221(221),
		custom-222(222),
		custom-223(223),
		custom-224(224),
		custom-225(225),
		custom-226(226),
		custom-227(227),
		custom-228(228),
		custom-229(229),
		custom-230(230),
		custom-231(231),
		custom-232(232),
		custom-233(233),
		custom-234(234),
		custom-235(235),
		custom-236(236),
		custom-237(237),
		custom-238(238),
		custom-239(239),
		custom-240(240),
		custom-241(241),
		custom-242(242),
		custom-243(243),
		custom-244(244),
		custom-245(245),
		custom-246(246),
		custom-247(247),
		custom-248(248),
		custom-249(249),
		custom-250(250),
		custom-251(251),
		custom-252(252),
		custom-253(253),
		custom-254(254),
		custom-255(255)
	}
 	 MAX-ACCESS read-create
 	 STATUS current
 	 DESCRIPTION
		"The type IDs for this enforcer as bit string.
		Each type ID bit can either be set (allowed) or cleared (blocked).
		Following type IDs are defined:
			1 Single point information m-sp-na-1
			2 Single point information with time tag m-sp-ta-1
			3 Double point information m-dp-na-1
			4 Double point information with time tag m-dp-ta-1
			5 Step position information m-st-na-1
			6 Step position information with time tag m-st-ta-1
			7 Bit string of 32 bit m-bo-na-1
			8 Bit string of 32 bit with time tag m-bo-ta-1
			9 Measured value, normalized value m-me-na-1
			10 Measured value, normalized value with time tag m-me-ta-1
			11 Measured value, scaled value m-me-nb-1
			12 Measured value, scaled value with time tag m-me-tb-1
			13 Measured value, short floating point value m-me-nc-1
			14 Measured value, short floating point value with time tag m-me-tc-1
			15 Integrated totals m-it-na-1
			16 Integrated totals with time tag m-it-ta-1
			17 Event of protection equipment with time tag m-ep-ta-1
			18 Packed start events of protection equipment with time tag m-ep-tb-1
			19 Packed output circuit information of protection equipment with time tag m-ep-tc-1
			20 Packed single-point information with status change detection m-ps-na-1
			21 Measured value, normalized value without quality descriptor m-me-nd-1
			30 Single point information with time tag cp56time2a m-sp-tb-1
			31 Double point information with time tag cp56time2a m-dp-tb-1
			32 Step position information with time tag cp56time2a m-st-tb-1
			33 Bit string of 32 bit with time tag cp56time2a m-bo-tb-1
			34 Measured value, normalized value with time tag cp56time2a m-me-td-1
			35 Measured value, scaled value with time tag cp56time2a m-me-te-1
			36 Measured value, short floating point value with time tag cp56time2a m-me-tf-1
			37 Integrated totals with time tag cp56time2a m-it-tb-1
			38 Event of protection equipment with time tag cp56time2a m-ep-td-1
			39 Packed start events of protection equipment with time tag cp56time2a m-ep-te-1
			40 Packed output circuit information of protection equipment with time tag cp56time2a m-ep-tf-1
			45 Single command c-sc-na-1
			46 Double command c-dc-na-1
			47 Regulating step command c-rc-na-1
			48 Setpoint command, normalized value c-se-na-1
			49 Setpoint command, scaled value c-se-nb-1
			50 Setpoint command, short floating point value c-se-nc-1
			51 Bit string 32 bit c-bo-na-1
			58 Single command with time tag cp56time2a c-sc-ta-1
			59 Double command with time tag cp56time2a c-dc-ta-1
			60 Regulating step command with time tag cp56time2a c-rc-ta-1
			61 Setpoint command, normalized value with time tag cp56time2a c-se-ta-1
			62 Setpoint command, scaled value with time tag cp56time2a c-se-tb-1
			63 Setpoint command, short floating point value with time tag cp56time2a c-se-tc-1
			64 Bit string 32 bit with time tag cp56time2a c-bo-ta-1
			70 End of initialization m-ei-na-1
			100 (General-) Interrogation command c-ic-na-1
			101 Counter interrogation command c-ci-na-1
			102 Read command c-rd-na-1
			103 Clock synchronization command c-cs-na-1
			104 ( IEC 101 ) Test command c-ts-nb-1
			105 Reset process command c-rp-nc-1
			106 ( IEC 101 ) Delay acquisition command c-cd-na-1
			107 Test command with time tag cp56time2a c-ts-ta-1
			110 Parameter of measured value, normalized value p-me-na-1
			111 Parameter of measured value, scaled value p-me-nb-1
			112 Parameter of measured value, short floating point value p-me-nc-1
			113 Parameter activation p-ac-na-1
			120 File ready f-fr-na-1
			121 Section ready f-sr-na-1
			122 Call directory, select file, call file, call section f-sc-na-1
			123 Last section, last segment f-ls-na-1
			124 Ack file, Ack section f-af-na-1
			125 Segment f-sg-na-1
			126 f-dr-ta-1
			127 QueryLog - Request archive file f-sc-nb-1
			128-255 Custom type IDs accessible via custom-<ID>
			All undefined type IDs are accessible via reserverd-<ID>"
	DEFVAL  { {m-sp-na-1,m-sp-ta-1,m-dp-na-1} }
	::= { hm2DPIProfileIEC104Entry 4 }

hm2DPIProfileIEC104OriginatorAddressList OBJECT-TYPE
 	 SYNTAX BITS {
		oa-0(0),
		oa-1(1),
		oa-2(2),
		oa-3(3),
		oa-4(4),
		oa-5(5),
		oa-6(6),
		oa-7(7),
		oa-8(8),
		oa-9(9),
		oa-10(10),
		oa-11(11),
		oa-12(12),
		oa-13(13),
		oa-14(14),
		oa-15(15),
		oa-16(16),
		oa-17(17),
		oa-18(18),
		oa-19(19),
		oa-20(20),
		oa-21(21),
		oa-22(22),
		oa-23(23),
		oa-24(24),
		oa-25(25),
		oa-26(26),
		oa-27(27),
		oa-28(28),
		oa-29(29),
		oa-30(30),
		oa-31(31),
		oa-32(32),
		oa-33(33),
		oa-34(34),
		oa-35(35),
		oa-36(36),
		oa-37(37),
		oa-38(38),
		oa-39(39),
		oa-40(40),
		oa-41(41),
		oa-42(42),
		oa-43(43),
		oa-44(44),
		oa-45(45),
		oa-46(46),
		oa-47(47),
		oa-48(48),
		oa-49(49),
		oa-50(50),
		oa-51(51),
		oa-52(52),
		oa-53(53),
		oa-54(54),
		oa-55(55),
		oa-56(56),
		oa-57(57),
		oa-58(58),
		oa-59(59),
		oa-60(60),
		oa-61(61),
		oa-62(62),
		oa-63(63),
		oa-64(64),
		oa-65(65),
		oa-66(66),
		oa-67(67),
		oa-68(68),
		oa-69(69),
		oa-70(70),
		oa-71(71),
		oa-72(72),
		oa-73(73),
		oa-74(74),
		oa-75(75),
		oa-76(76),
		oa-77(77),
		oa-78(78),
		oa-79(79),
		oa-80(80),
		oa-81(81),
		oa-82(82),
		oa-83(83),
		oa-84(84),
		oa-85(85),
		oa-86(86),
		oa-87(87),
		oa-88(88),
		oa-89(89),
		oa-90(90),
		oa-91(91),
		oa-92(92),
		oa-93(93),
		oa-94(94),
		oa-95(95),
		oa-96(96),
		oa-97(97),
		oa-98(98),
		oa-99(99),
		oa-100(100),
		oa-101(101),
		oa-102(102),
		oa-103(103),
		oa-104(104),
		oa-105(105),
		oa-106(106),
		oa-107(107),
		oa-108(108),
		oa-109(109),
		oa-110(110),
		oa-111(111),
		oa-112(112),
		oa-113(113),
		oa-114(114),
		oa-115(115),
		oa-116(116),
		oa-117(117),
		oa-118(118),
		oa-119(119),
		oa-120(120),
		oa-121(121),
		oa-122(122),
		oa-123(123),
		oa-124(124),
		oa-125(125),
		oa-126(126),
		oa-127(127),
		oa-128(128),
		oa-129(129),
		oa-130(130),
		oa-131(131),
		oa-132(132),
		oa-133(133),
		oa-134(134),
		oa-135(135),
		oa-136(136),
		oa-137(137),
		oa-138(138),
		oa-139(139),
		oa-140(140),
		oa-141(141),
		oa-142(142),
		oa-143(143),
		oa-144(144),
		oa-145(145),
		oa-146(146),
		oa-147(147),
		oa-148(148),
		oa-149(149),
		oa-150(150),
		oa-151(151),
		oa-152(152),
		oa-153(153),
		oa-154(154),
		oa-155(155),
		oa-156(156),
		oa-157(157),
		oa-158(158),
		oa-159(159),
		oa-160(160),
		oa-161(161),
		oa-162(162),
		oa-163(163),
		oa-164(164),
		oa-165(165),
		oa-166(166),
		oa-167(167),
		oa-168(168),
		oa-169(169),
		oa-170(170),
		oa-171(171),
		oa-172(172),
		oa-173(173),
		oa-174(174),
		oa-175(175),
		oa-176(176),
		oa-177(177),
		oa-178(178),
		oa-179(179),
		oa-180(180),
		oa-181(181),
		oa-182(182),
		oa-183(183),
		oa-184(184),
		oa-185(185),
		oa-186(186),
		oa-187(187),
		oa-188(188),
		oa-189(189),
		oa-190(190),
		oa-191(191),
		oa-192(192),
		oa-193(193),
		oa-194(194),
		oa-195(195),
		oa-196(196),
		oa-197(197),
		oa-198(198),
		oa-199(199),
		oa-200(200),
		oa-201(201),
		oa-202(202),
		oa-203(203),
		oa-204(204),
		oa-205(205),
		oa-206(206),
		oa-207(207),
		oa-208(208),
		oa-209(209),
		oa-210(210),
		oa-211(211),
		oa-212(212),
		oa-213(213),
		oa-214(214),
		oa-215(215),
		oa-216(216),
		oa-217(217),
		oa-218(218),
		oa-219(219),
		oa-220(220),
		oa-221(221),
		oa-222(222),
		oa-223(223),
		oa-224(224),
		oa-225(225),
		oa-226(226),
		oa-227(227),
		oa-228(228),
		oa-229(229),
		oa-230(230),
		oa-231(231),
		oa-232(232),
		oa-233(233),
		oa-234(234),
		oa-235(235),
		oa-236(236),
		oa-237(237),
		oa-238(238),
		oa-239(239),
		oa-240(240),
		oa-241(241),
		oa-242(242),
		oa-243(243),
		oa-244(244),
		oa-245(245),
		oa-246(246),
		oa-247(247),
		oa-248(248),
		oa-249(249),
		oa-250(250),
		oa-251(251),
		oa-252(252),
		oa-253(253),
		oa-254(254),
		oa-255(255)
 	 }
 	 MAX-ACCESS read-create
 	 STATUS current
 	 DESCRIPTION
		"Allowed Originator addresses for this enforcer as bit string.
		Each bit corresponds to an orignator address which may either be
		allowed (bit set) or blocked (bit cleared). If all bits are cleared,
		no filtering on originator addresses is done (all addresses allowed).
		Following Originator addresses are defined:
			oa-<0..255> (only the selected Originator addresses will be allowed)"
	DEFVAL { { } }
	::= { hm2DPIProfileIEC104Entry 5 }

hm2DPIProfileIEC104CommonAddressList OBJECT-TYPE
 	 SYNTAX HmLargeDisplayString ( SIZE(1..1024) )
 	 MAX-ACCESS read-create
 	 STATUS current
 	 DESCRIPTION
		"Allowed Common addresses for this enforcer as string.
		An Common address has the syntax:
			<val>
		To specify no options, the value 'none' must be given. In this case
		all Common addresses will be allowed.
		Common addresses are separated by a comma.
		Following Common addresses are defined:
			<0..65535> (only the selected Common addresses will be allowed)"
	DEFVAL { "none" }
	::= { hm2DPIProfileIEC104Entry 6 }

hm2DPIProfileIEC104SanityCheck OBJECT-TYPE
	SYNTAX HmEnabledStatus
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"Set to 'enable' if a sanity check including format and specification 
		for all packets shall be done"
	DEFVAL { enable }
	::= { hm2DPIProfileIEC104Entry 7 }

hm2DPIProfileIEC104Reset OBJECT-TYPE
	SYNTAX HmEnabledStatus
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"Set to 'enable' if reset connection message shall be sent in case a packet is dropped"
	DEFVAL { enable }
	::= { hm2DPIProfileIEC104Entry 8 }

hm2DPIProfileIEC104Debug OBJECT-TYPE
	SYNTAX HmEnabledStatus
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"Set to 'enable' if reset connection message shall contain debug information"
	DEFVAL { disable }
	::= { hm2DPIProfileIEC104Entry 9 }

hm2DPIProfileIEC104RowStatus OBJECT-TYPE
	SYNTAX RowStatus
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"This is a standard row status value:
            - active(1): The profile is active. You cannot modify it.
            - notInService(2): The profile is inactive because of user action.
              You cannot inactivate the profile if an active enforcer mappings to it.
            - notReady(3): The profile is inactive because of agent action.
            - createAndGo(4): Create the profile with default parameters
              activated.
            - createAndWait(5): Create the profile inactive.
            - destroy(6): Delete the profile.
              You cannot delete the active profile or if an enforcer mappings to it."
	::= { hm2DPIProfileIEC104Entry 10 }

hm2DPIProfileEnipTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF Hm2DPIProfileEnipEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"The list of DPI EthernetIP profiles for this enforcer"
	::= { hm2DPIProfileTables 4 }

hm2DPIProfileEnipEntry OBJECT-TYPE
	SYNTAX Hm2DPIProfileEnipEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"DPI EthernetIP profile entry."
	INDEX { hm2DPIProfileEnipIndex }
	::= { hm2DPIProfileEnipTable 1 }

Hm2DPIProfileEnipEntry ::=
	SEQUENCE {
		hm2DPIProfileEnipIndex Integer32,
		hm2DPIProfileEnipDescription SnmpAdminString,
		hm2DPIProfileEnipFunctionType INTEGER,
		hm2DPIProfileEnipCmdList HmLargeDisplayString,
		hm2DPIProfileEnipSanityCheck HmEnabledStatus,
		hm2DPIProfileEnipReset HmEnabledStatus,
		hm2DPIProfileEnipDebug HmEnabledStatus,
		hm2DPIProfileEnipRowStatus RowStatus
	}

hm2DPIProfileEnipIndex OBJECT-TYPE
	SYNTAX Integer32 ( 1..32 )
	MAX-ACCESS accessible-for-notify
	STATUS current
	DESCRIPTION
		"Profile index of this DPI EthernetIP profile"
	::= { hm2DPIProfileEnipEntry 1 }

hm2DPIProfileEnipDescription OBJECT-TYPE
	SYNTAX SnmpAdminString ( SIZE(0..128) )
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"User defined textual description related to this profile."
	DEFVAL { "EthernetIP" }
	::= { hm2DPIProfileEnipEntry 2 }

hm2DPIProfileEnipFunctionType OBJECT-TYPE
 	 SYNTAX INTEGER {
			readonly(1),
			readwrite(2),
			all(3),
			advanced(4)
 	 }
 	 MAX-ACCESS read-create
 	 STATUS current
 	 DESCRIPTION
 	 	 "The function types of the corresponding commands:
 	 	 o readonly(1): Selects read only commands for the command list.
 	 	 o readwrite(2): Selects read write commands for the command list.
 	 	 o all(3): Selects all possible commands for the command list. Any command will be allowed.
	 	 o advanced(4): Keeps the command list from the previous selection and makes it editable by the user."
	DEFVAL { readonly }
	::= { hm2DPIProfileEnipEntry 3 }

hm2DPIProfileEnipCmdList OBJECT-TYPE
 	 SYNTAX HmLargeDisplayString ( SIZE(1..1024) )
 	 MAX-ACCESS read-create
 	 STATUS current
 	 DESCRIPTION
		"The allowed commands for this enforcer as string.
		A command has the syntax:
			<val>
		Commands are separated by a comma.
		Commands are defined in the hm2DPICommandEnipTable."
	DEFVAL  {  "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,
				26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,
				48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,
				70,71,72,73,74,75,76,77,139" }
	::= { hm2DPIProfileEnipEntry 4 }

hm2DPIProfileEnipSanityCheck OBJECT-TYPE
	SYNTAX HmEnabledStatus
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"Set to 'enable' if a sanity check including format and specification 
		for all packets shall be done"
	DEFVAL { enable }
	::= { hm2DPIProfileEnipEntry 5 }

hm2DPIProfileEnipReset OBJECT-TYPE
	SYNTAX HmEnabledStatus
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"Set to 'enable' if reset connection message shall be sent in case a packet is dropped"
	DEFVAL { enable }
	::= { hm2DPIProfileEnipEntry 6 }

hm2DPIProfileEnipDebug OBJECT-TYPE
	SYNTAX HmEnabledStatus
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"Set to 'enable' if reset connection message shall contain debug information"
	DEFVAL { disable }
	::= { hm2DPIProfileEnipEntry 7 }

hm2DPIProfileEnipRowStatus OBJECT-TYPE
	SYNTAX RowStatus
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"This is a standard row status value:
            - active(1): The profile is active. You cannot modify it.
            - notInService(2): The profile is inactive because of user action.
              You cannot inactivate the profile if an active enforcer mappings to it.
            - notReady(3): The profile is inactive because of agent action.
            - createAndGo(4): Create the profile with default parameters
              activated.
            - createAndWait(5): Create the profile inactive.
            - destroy(6): Delete the profile.
              You cannot delete the active profile or if an enforcer mappings to it."
	::= { hm2DPIProfileEnipEntry 8 }

hm2DPICommandEnipTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF Hm2DPICommandEnipEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"The list of DPI EthernetIP commands for this enforcer"
	::= { hm2DPIProfileTables 5 }

hm2DPICommandEnipEntry OBJECT-TYPE
	SYNTAX Hm2DPICommandEnipEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"DPI EthernetIP command entry."
	INDEX { hm2DPICommandEnipIndex }
	::= { hm2DPICommandEnipTable 1 }

Hm2DPICommandEnipEntry ::=
	SEQUENCE {
		hm2DPICommandEnipIndex Integer32,
		hm2DPICommandEnipDescription DisplayString,
		hm2DPICommandEnipCmds BITS,
		hm2DPICommandEnipServices BITS,
		hm2DPICommandEnipClasses HmLargeDisplayString,
		hm2DPICommandEnipRowStatus RowStatus
	}

hm2DPICommandEnipIndex OBJECT-TYPE
	SYNTAX Integer32 ( 1..256 )
	MAX-ACCESS accessible-for-notify
	STATUS current
	DESCRIPTION
		"Command index of this DPI EthernetIP command"
	::= { hm2DPICommandEnipEntry 1 }

hm2DPICommandEnipDescription OBJECT-TYPE
	SYNTAX DisplayString ( SIZE(0..128) )
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"User defined textual description related to this command."
	DEFVAL { "EthernetIP Command" }
	::= { hm2DPICommandEnipEntry 2 }

hm2DPICommandEnipCmds OBJECT-TYPE
 	 SYNTAX BITS {
		cmd-0(0),
		cmd-1(1),
		cmd-2(2),
		cmd-3(3),
		list-services(4),
		cmd-5(5),
		cmd-6(6),
		cmd-7(7),
		cmd-8(8),
		cmd-9(9),
		cmd-10(10),
		cmd-11(11),
		cmd-12(12),
		cmd-13(13),
		cmd-14(14),
		cmd-15(15),
		cmd-16(16),
		cmd-17(17),
		cmd-18(18),
		cmd-19(19),
		cmd-20(20),
		cmd-21(21),
		cmd-22(22),
		cmd-23(23),
		cmd-24(24),
		cmd-25(25),
		cmd-26(26),
		cmd-27(27),
		cmd-28(28),
		cmd-29(29),
		cmd-30(30),
		cmd-31(31),
		cmd-32(32),
		cmd-33(33),
		cmd-34(34),
		cmd-35(35),
		cmd-36(36),
		cmd-37(37),
		cmd-38(38),
		cmd-39(39),
		cmd-40(40),
		cmd-41(41),
		cmd-42(42),
		cmd-43(43),
		cmd-44(44),
		cmd-45(45),
		cmd-46(46),
		cmd-47(47),
		cmd-48(48),
		cmd-49(49),
		cmd-50(50),
		cmd-51(51),
		cmd-52(52),
		cmd-53(53),
		cmd-54(54),
		cmd-55(55),
		cmd-56(56),
		cmd-57(57),
		cmd-58(58),
		cmd-59(59),
		cmd-60(60),
		cmd-61(61),
		cmd-62(62),
		cmd-63(63),
		cmd-64(64),
		cmd-65(65),
		cmd-66(66),
		cmd-67(67),
		cmd-68(68),
		cmd-69(69),
		cmd-70(70),
		cmd-71(71),
		cmd-72(72),
		cmd-73(73),
		cmd-74(74),
		cmd-75(75),
		cmd-76(76),
		cmd-77(77),
		cmd-78(78),
		cmd-79(79),
		cmd-80(80),
		cmd-81(81),
		cmd-82(82),
		cmd-83(83),
		cmd-84(84),
		cmd-85(85),
		cmd-86(86),
		cmd-87(87),
		cmd-88(88),
		cmd-89(89),
		cmd-90(90),
		cmd-91(91),
		cmd-92(92),
		cmd-93(93),
		cmd-94(94),
		cmd-95(95),
		cmd-96(96),
		cmd-97(97),
		cmd-98(98),
		list-identity(99),
		list-interfaces(100),
		register-session(101),
		unregister-session(102),
		cmd-103(103),
		cmd-104(104),
		cmd-105(105),
		cmd-106(106),
		cmd-107(107),
		cmd-108(108),
		cmd-109(109),
		cmd-110(110),
		send-rr-data(111),
		send-unit-data(112),
		cmd-113(113),
		cmd-114(114),
		cmd-115(115),
		cmd-116(116),
		cmd-117(117),
		cmd-118(118),
		cmd-119(119),
		cmd-120(120),
		cmd-121(121),
		cmd-122(122),
		cmd-123(123),
		cmd-124(124),
		cmd-125(125),
		cmd-126(126),
		cmd-127(127),
		cmd-128(128),
		cmd-129(129),
		cmd-130(130),
		cmd-131(131),
		cmd-132(132),
		cmd-133(133),
		cmd-134(134),
		cmd-135(135),
		cmd-136(136),
		cmd-137(137),
		cmd-138(138),
		cmd-139(139),
		cmd-140(140),
		cmd-141(141),
		cmd-142(142),
		cmd-143(143),
		cmd-144(144),
		cmd-145(145),
		cmd-146(146),
		cmd-147(147),
		cmd-148(148),
		cmd-149(149),
		cmd-150(150),
		cmd-151(151),
		cmd-152(152),
		cmd-153(153),
		cmd-154(154),
		cmd-155(155),
		cmd-156(156),
		cmd-157(157),
		cmd-158(158),
		cmd-159(159),
		cmd-160(160),
		cmd-161(161),
		cmd-162(162),
		cmd-163(163),
		cmd-164(164),
		cmd-165(165),
		cmd-166(166),
		cmd-167(167),
		cmd-168(168),
		cmd-169(169),
		cmd-170(170),
		cmd-171(171),
		cmd-172(172),
		cmd-173(173),
		cmd-174(174),
		cmd-175(175),
		cmd-176(176),
		cmd-177(177),
		cmd-178(178),
		cmd-179(179),
		cmd-180(180),
		cmd-181(181),
		cmd-182(182),
		cmd-183(183),
		cmd-184(184),
		cmd-185(185),
		cmd-186(186),
		cmd-187(187),
		cmd-188(188),
		cmd-189(189),
		cmd-190(190),
		cmd-191(191),
		cmd-192(192),
		cmd-193(193),
		cmd-194(194),
		cmd-195(195),
		cmd-196(196),
		cmd-197(197),
		cmd-198(198),
		cmd-199(199),
		cmd-200(200),
		cmd-201(201),
		cmd-202(202),
		cmd-203(203),
		cmd-204(204),
		cmd-205(205),
		cmd-206(206),
		cmd-207(207),
		cmd-208(208),
		cmd-209(209),
		cmd-210(210),
		cmd-211(211),
		cmd-212(212),
		cmd-213(213),
		cmd-214(214),
		cmd-215(215),
		cmd-216(216),
		cmd-217(217),
		cmd-218(218),
		cmd-219(219),
		cmd-220(220),
		cmd-221(221),
		cmd-222(222),
		cmd-223(223),
		cmd-224(224),
		cmd-225(225),
		cmd-226(226),
		cmd-227(227),
		cmd-228(228),
		cmd-229(229),
		cmd-230(230),
		cmd-231(231),
		cmd-232(232),
		cmd-233(233),
		cmd-234(234),
		cmd-235(235),
		cmd-236(236),
		cmd-237(237),
		cmd-238(238),
		cmd-239(239),
		cmd-240(240),
		cmd-241(241),
		cmd-242(242),
		cmd-243(243),
		cmd-244(244),
		cmd-245(245),
		cmd-246(246),
		cmd-247(247),
		cmd-248(248),
		cmd-249(249),
		cmd-250(250),
		cmd-251(251),
		cmd-252(252),
		cmd-253(253),
		cmd-254(254),
		cmd-255(255)
 	 }
 	 MAX-ACCESS read-create
 	 STATUS current
 	 DESCRIPTION
		"The allowed command numbers as bit string.
		Following commands are defined:
			0x00 NOP
			0x04 List Services
			0x63 List Identity
			0x64 List Interfaces
			0x65 Register Session
			0x66 Unregister Session
			0x6F Send RR Data
			0x70 Send Unit Data
		
		WARNING: The command, service and class codes will be combined to generate an
		internal configuration file. Do not create entries with many command, service
		and class codes at once as it will produce very large configuration files and
		slow down or possibly crash the device."
	DEFVAL  { {send-unit-data} }
	::= { hm2DPICommandEnipEntry 3 }

hm2DPICommandEnipServices OBJECT-TYPE
 	 SYNTAX BITS {
		service-0(0),
		get-attr-all(1),
		set-attr-all(2),
		get-attr-list(3),
		set-attr-list(4),
		reset(5),
		start(6),
		stop(7),
		create(8),
		delete(9),
		multiple-service-packet(10),
		service-11(11),
		service-12(12),
		apply-attributes(13),
		get-attr-single(14),
		service-15(15),
		set-attr-single(16),
		find-next-object-instance(17),
		service-18(18),
		service-19(19),
		service-20(20),
		restore(21),
		save(22),
		nop(23),
		get-member(24),
		set-member(25),
		insert-member(26),
		remove-member(27),
		group-sync(28),
		service-29(29),
		service-30(30),
		service-31(31),
		service-32(32),
		service-33(33),
		service-34(34),
		service-35(35),
		service-36(36),
		service-37(37),
		service-38(38),
		service-39(39),
		service-40(40),
		service-41(41),
		service-42(42),
		service-43(43),
		service-44(44),
		service-45(45),
		service-46(46),
		service-47(47),
		service-48(48),
		service-49(49),
		service-50(50),
		service-51(51),
		service-52(52),
		service-53(53),
		service-54(54),
		service-55(55),
		service-56(56),
		service-57(57),
		service-58(58),
		service-59(59),
		service-60(60),
		service-61(61),
		service-62(62),
		service-63(63),
		service-64(64),
		service-65(65),
		service-66(66),
		service-67(67),
		service-68(68),
		service-69(69),
		service-70(70),
		service-71(71),
		service-72(72),
		service-73(73),
		service-74(74),
		service-75(75),
		service-76(76),
		service-77(77),
		service-78(78),
		service-79(79),
		service-80(80),
		service-81(81),
		service-82(82),
		service-83(83),
		service-84(84),
		service-85(85),
		service-86(86),
		service-87(87),
		service-88(88),
		service-89(89),
		service-90(90),
		service-91(91),
		service-92(92),
		service-93(93),
		service-94(94),
		service-95(95),
		service-96(96),
		service-97(97),
		service-98(98),
		service-99(99),
		service-100(100),
		service-101(101),
		service-102(102),
		service-103(103),
		service-104(104),
		service-105(105),
		service-106(106),
		service-107(107),
		service-108(108),
		service-109(109),
		service-110(110),
		service-111(111),
		service-112(112),
		service-113(113),
		service-114(114),
		service-115(115),
		service-116(116),
		service-117(117),
		service-118(118),
		service-119(119),
		service-120(120),
		service-121(121),
		service-122(122),
		service-123(123),
		service-124(124),
		service-125(125),
		service-126(126),
		service-127(127),
		service-128(128),
		service-129(129),
		service-130(130),
		service-131(131),
		service-132(132),
		service-133(133),
		service-134(134),
		service-135(135),
		service-136(136),
		service-137(137),
		service-138(138),
		service-139(139),
		service-140(140),
		service-141(141),
		service-142(142),
		service-143(143),
		service-144(144),
		service-145(145),
		service-146(146),
		service-147(147),
		service-148(148),
		service-149(149),
		service-150(150),
		service-151(151),
		service-152(152),
		service-153(153),
		service-154(154),
		service-155(155),
		service-156(156),
		service-157(157),
		service-158(158),
		service-159(159),
		service-160(160),
		service-161(161),
		service-162(162),
		service-163(163),
		service-164(164),
		service-165(165),
		service-166(166),
		service-167(167),
		service-168(168),
		service-169(169),
		service-170(170),
		service-171(171),
		service-172(172),
		service-173(173),
		service-174(174),
		service-175(175),
		service-176(176),
		service-177(177),
		service-178(178),
		service-179(179),
		service-180(180),
		service-181(181),
		service-182(182),
		service-183(183),
		service-184(184),
		service-185(185),
		service-186(186),
		service-187(187),
		service-188(188),
		service-189(189),
		service-190(190),
		service-191(191),
		service-192(192),
		service-193(193),
		service-194(194),
		service-195(195),
		service-196(196),
		service-197(197),
		service-198(198),
		service-199(199),
		service-200(200),
		service-201(201),
		service-202(202),
		service-203(203),
		service-204(204),
		service-205(205),
		service-206(206),
		service-207(207),
		service-208(208),
		service-209(209),
		service-210(210),
		service-211(211),
		service-212(212),
		service-213(213),
		service-214(214),
		service-215(215),
		service-216(216),
		service-217(217),
		service-218(218),
		service-219(219),
		service-220(220),
		service-221(221),
		service-222(222),
		service-223(223),
		service-224(224),
		service-225(225),
		service-226(226),
		service-227(227),
		service-228(228),
		service-229(229),
		service-230(230),
		service-231(231),
		service-232(232),
		service-233(233),
		service-234(234),
		service-235(235),
		service-236(236),
		service-237(237),
		service-238(238),
		service-239(239),
		service-240(240),
		service-241(241),
		service-242(242),
		service-243(243),
		service-244(244),
		service-245(245),
		service-246(246),
		service-247(247),
		service-248(248),
		service-249(249),
		service-250(250),
		service-251(251),
		service-252(252),
		service-253(253),
		service-254(254),
		service-255(255)
 	 }
 	 MAX-ACCESS read-create
 	 STATUS current
 	 DESCRIPTION
		"The allowed service numbers as bit string.
		Following services are defined:
			0x01 Get Attributes All
			0x02 Set Attributes All
			0x03 Get Attributes List
			0x04 Set Attributes List
			0x05 Reset
			0x06 Start
			0x07 Stop
			0x08 Create
			0x09 Delete
			0x0A Multiple Service Packet
			0x0D Apply Attributes
			0x0E Get Attribute Single
			0x10 Set Attribute Single
			0x11 Find Next Object Instance
			0x15 Restore
			0x16 Save
			0x17 Nop
			0x18 Get Member
			0x19 Set Member
			0x1A Insert Member
			0x1B Remove Member
			0x1C Group Sync
			0x32 - 0x4A Vendor Specific
			0x4B - 0x63 Object Class Specific

		WARNING: The command, service and class codes will be combined to generate an
		internal configuration file. Do not create entries with many command, service
		and class codes at once as it will produce very large configuration files and
		slow down or possibly crash the device."
	DEFVAL  { {get-attr-all,get-attr-single} }
	::= { hm2DPICommandEnipEntry 4 }

hm2DPICommandEnipClasses OBJECT-TYPE
 	 SYNTAX HmLargeDisplayString ( SIZE(1..1024) )
 	 MAX-ACCESS read-create
 	 STATUS current
 	 DESCRIPTION
		"The allowed class numbers as string.
		A class has the syntax:
			<val>
		Classes are separated by a comma and may be formated in hex (e.g. 0xF1)
		or in decimal (e.g. 241). To allow all classes, the value 'any' must be given.
		Following classes are defined:
			0x0000 - 0x0063 CIP Common
			0x0064 - 0x00C7 Vendor Specific
			0x00F0 - 0x02FF CIP Common
			0x0300 - 0x04FF Vendor Specific

		WARNING: The command, service and class codes will be combined to generate an
		internal configuration file. Do not create entries with many command, service
		and class codes at once as it will produce very large configuration files and
		slow down or possibly crash the device."
	DEFVAL  { "any" }
	::= { hm2DPICommandEnipEntry 5 }

hm2DPICommandEnipRowStatus OBJECT-TYPE
	SYNTAX RowStatus
	MAX-ACCESS read-create
	STATUS current
	DESCRIPTION
		"This is a standard row status value:
            - active(1): The profile is active. You cannot modify it.
            - notInService(2): The profile is inactive because of user action.
              You cannot inactivate the profile if an active enforcer mappings to it.
            - notReady(3): The profile is inactive because of agent action.
            - createAndGo(4): Create the profile with default parameters
              activated.
            - createAndWait(5): Create the profile inactive.
            - destroy(6): Delete the profile.
              You cannot delete the active profile or if an enforcer mappings to it."
	::= { hm2DPICommandEnipEntry 6 }

--******************************************************************************
--                         Firewall Learning Mode
--******************************************************************************

hm2FLMObjects OBJECT IDENTIFIER ::= { hm2FwLearningMode 1 }

hm2FLMAdminState	OBJECT-TYPE
	SYNTAX		HmEnabledStatus
	MAX-ACCESS	read-write
	STATUS		current
	DESCRIPTION
		"Enable or disable the Firewall Learning Mode."
	DEFVAL		{ disable }
	::= { hm2FLMObjects 1 }

hm2FLMAction		OBJECT-TYPE
	SYNTAX		INTEGER {
			none(1),
			start(2),
			stop(3),
			continue(4),
			clear(5)
			}
	MAX-ACCESS	read-write
	STATUS		current
	DESCRIPTION
		"Actions to control the Firewall Learning Mode."
	DEFVAL  { none }
	::= { hm2FLMObjects 2 }

hm2FLMAppState	OBJECT-TYPE
	SYNTAX		INTEGER {
			off(1),
			stopped-data-notpresent(2),
			stopped-data-present(3),
			learning(4),
			pending(5)
			}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"State of running FLM Application."
	::= { hm2FLMObjects 3 }

hm2FLMAppInfoEnum	OBJECT-TYPE
	SYNTAX		INTEGER {
			none(1),
			normal(2),
			low-memory(3),
			out-of-memory(4),
			connection-drop(5)
			}
	MAX-ACCESS   read-only
	STATUS 	current
	DESCRIPTION
		"Memory status of FLM Application."
	::= { hm2FLMObjects 4 }

hm2FLMAppInfoString	OBJECT-TYPE
	SYNTAX		SnmpAdminString (SIZE (0..80))
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Special status message."
	::= { hm2FLMObjects 5 }

hm2FLML3Entries	OBJECT-TYPE
	SYNTAX		Unsigned32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Number of Layer 3 entries in the connection table."
	::= { hm2FLMObjects 6 }

hm2FLMFreeMem		OBJECT-TYPE
	SYNTAX		Unsigned32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Free memory(%) for learning data."
	::= { hm2FLMObjects 7 }

hm2FLMMaxEntries	OBJECT-TYPE
	SYNTAX		Unsigned32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"Number of maximum interface entries that can be selected."
	::= { hm2FLMObjects 8 }

hm2FLMTables  OBJECT IDENTIFIER ::= { hm2FwLearningMode 2 }

hm2FLMInterfaceTable	OBJECT-TYPE
	SYNTAX		SEQUENCE OF Hm2FLMInterfaceEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"The list of interfaces selected for Firewall Learning Mode."
	::= { hm2FLMTables 1 }

hm2FLMInterfaceEntry	OBJECT-TYPE
	SYNTAX		Hm2FLMInterfaceEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"Interface selected for Firewall Learning Mode."
	INDEX { hm2FLMInterfaceIndex }
	::= { hm2FLMInterfaceTable 1 }

Hm2FLMInterfaceEntry ::=
	SEQUENCE {
		hm2FLMInterfaceIndex InterfaceIndex,
		hm2FLMInterfaceRowStatus RowStatus
	}

hm2FLMInterfaceIndex	OBJECT-TYPE
	SYNTAX		InterfaceIndex
	MAX-ACCESS	read-write
	STATUS		current
	DESCRIPTION
		"Interface index of the entry."
	::= { hm2FLMInterfaceEntry 1 }

hm2FLMInterfaceRowStatus	OBJECT-TYPE
	SYNTAX		RowStatus
	MAX-ACCESS	read-create
	STATUS		current
	DESCRIPTION
		"This is a standard row status value:
            - active(1): The interface is active. 
            - notInService(2): The interface is inactive because routing was disabled.
            - notReady(3): The interface is inactive because of agent action.
            - createAndGo(4): Create the interface with default parameters
              activated.
            - createAndWait(5): Create the interface inactive.
            - destroy(6): Delete the interface."
	::= { hm2FLMInterfaceEntry 2 }

--******************************************************************************
--			Compliance statements
--******************************************************************************

hm2FwCompliances OBJECT IDENTIFIER ::= { hm2FwConformance 1 }
hm2FwGroups OBJECT IDENTIFIER ::= { hm2FwConformance 2 }

hm2FwCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for an SNMP entity which
         implements the Hirschmann firewall MIB."
    MODULE     -- this module
    MANDATORY-GROUPS { hm2FwGeneralGroup, hm2FwNotificationsGroup }
    ::= { hm2FwCompliances 1 }

hm2FwGeneralGroup OBJECT-GROUP
    OBJECTS {
    	hm2DynFwMaxRules,
    	hm2L3MaxRules,
    	hm2ResetStatistics,
    	hm2FlushTables,
    	hm2DefaultPolicy,
       
    	hm2DynFwRuleCount,
    	hm2DynFwIfMappingRuleCount,
    	hm2DynFwRulePendingActions,
    	hm2DynFwCommitPendingActions,
    	hm2DynFwRuleIndex,
	hm2DynFwSourceAddress,
	hm2DynFwSourcePort,
	hm2DynFwTargetAddress,
	hm2DynFwTargetPort,
	hm2DynFwProto,
	hm2DynFwRuleParams,
	hm2DynFwAction,
	hm2DynFwLog,
	hm2DynFwTrap,
        hm2DynFwDescription,
	hm2DynFwRowStatus,
    	hm2DynFwIfmPriority,
	hm2DynFwIfmRowStatus,
	
	hm2DynFwStatsPacketCount,
	hm2DynFwStatsPacketSize,
	hm2DynFwStatsLastApplied,
	hm2DynFwStatsTtPck,
	hm2DynFwStatsTtPckSize,
	hm2DynFwStatsTtPckDenDrop,
	hm2DynFwStatsTtPckAccepted,
		
	hm2L3RuleCount,
	hm2L3IfMappingRuleCount,
	hm2L3RulePendingActions,
    	hm2L3CommitPendingActions,
    	hm2L3RuleIndex,
	hm2L3SourceAddress,
	hm2L3SourcePort,
	hm2L3TargetAddress,
	hm2L3TargetPort,
	hm2L3Proto,	
	hm2L3Action,
	hm2L3RuleParams,	
	hm2L3Log,
	hm2L3Trap,
        hm2L3Description,
	hm2L3RowStatus,
	hm2DPIProfileIndex,
    	hm2L3IfmPriority,
	hm2L3IfmRowStatus,
	hm2L3StatsPacketCount,
	hm2L3StatsPacketSize,
	hm2L3StatsLastApplied,
	hm2L3StatsTotalPck,
	hm2L3StatsTotalPckSize,
	hm2L3StatsTotalPckDenDrop,
	hm2L3StatsTotalPckAccepted,
	
	hm2DPIProfileModbusPendingActions,
	hm2DPIProfileModbusCommitPendingActions,
	hm2DPIProfileModbusIndex,
	hm2DPIProfileModbusDescription,
	hm2DPIProfileModbusFunctionType,
	hm2DPIProfileModbusFunctionCodeList,
	hm2DPIProfileModbusUnitIdentifierList,
	hm2DPIProfileModbusSanityCheck,
	hm2DPIProfileModbusException,
	hm2DPIProfileModbusReset,
	hm2DPIProfileModbusRowStatus,
	
	hm2DPIProfileOpcPendingActions,
	hm2DPIProfileOpcCommitPendingActions,
	hm2DPIProfileOpcIndex,
	hm2DPIProfileOpcDescription,
	hm2DPIProfileOpcSanityCheck,
	hm2DPIProfileOpcFragmentCheck,
	hm2DPIProfileOpcTimeoutConnect,
	hm2DPIProfileOpcRowStatus,
	
	hm2DPIProfileIEC104PendingActions,
	hm2DPIProfileIEC104CommitPendingActions,
	hm2DPIProfileIEC104Index,
	hm2DPIProfileIEC104Description,
	hm2DPIProfileIEC104FunctionType,
	hm2DPIProfileIEC104TypeIDList,
	hm2DPIProfileIEC104OriginatorAddressList,
	hm2DPIProfileIEC104CommonAddressList,
	hm2DPIProfileIEC104SanityCheck,
	hm2DPIProfileIEC104Reset,
	hm2DPIProfileIEC104Debug,
	hm2DPIProfileIEC104RowStatus,
	
	hm2DPIProfileEnipPendingActions,
	hm2DPIProfileEnipCommitPendingActions,
	hm2DPIProfileEnipIndex,
	hm2DPIProfileEnipDescription,
	hm2DPIProfileEnipFunctionType,
	hm2DPIProfileEnipCmdList,
	hm2DPIProfileEnipSanityCheck,
	hm2DPIProfileEnipDebug,
	hm2DPIProfileEnipReset,
	hm2DPIProfileEnipRowStatus,
	hm2DPICommandEnipUserIndexStart,
	hm2DPICommandEnipNextFreeIndex,
	hm2DPICommandEnipIndex,
	hm2DPICommandEnipDescription,
	hm2DPICommandEnipCmds,
	hm2DPICommandEnipServices,
	hm2DPICommandEnipClasses,
	hm2DPICommandEnipRowStatus
    }
    STATUS      current
    DESCRIPTION
        "A collection of all Hirschmann objects provided by the firewall
        module."
    ::= { hm2FwGroups 1 }

hm2FwNotificationsGroup  NOTIFICATION-GROUP
	NOTIFICATIONS {
		hm2DynFwRuleAppliedTrap,
		hm2DynFwRuleAppliedAndLoggedTrap,
		
		hm2L3RuleAppliedTrap,
		hm2L3RuleAppliedAndLoggedTrap		
	}
	STATUS current
	DESCRIPTION
		"A collection of all Hirschmann notifications provided by the
		firewall module."
		::= { hm2FwGroups 2 }

--
-- *************************************************************
-- FW SNMP Extension Group (extended error/event handling)
-- *************************************************************
--

hm2FwSNMPExtensionProfileInUse OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION "Indicates that the dpi profile is currently used by at least one L3 firewall rule."
           ::= { hm2FwSNMPExtensionGroup 1 }

hm2FwSNMPExtensionIEC104InvalidFunctionTypeChange OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION "Indicates that the function type cannot be changed from advanced to something else."
           ::= { hm2FwSNMPExtensionGroup 2 }

hm2FwSNMPExtensionIEC104InvalidCommonAddressList OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION "Indicates that the common address list is malformed."
           ::= { hm2FwSNMPExtensionGroup 3 }

hm2FwSNMPExtensionIEC104InvalidTypeIdListChange OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION "Indicates that the type id list cannot be modified with the function type not set to advanced."
           ::= { hm2FwSNMPExtensionGroup 4 }

hm2FwSNMPExtensionEnipInvalidFunctionTypeChange OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION "Indicates that the function type cannot be changed from advanced to something else."
           ::= { hm2FwSNMPExtensionGroup 5 }

hm2FwSNMPExtensionEnipInvalidCmdsList OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION "Indicates that the commands list in the Ethernet IP Command table is malformed (at least 1 command code must be set)."
           ::= { hm2FwSNMPExtensionGroup 6 }

hm2FwSNMPExtensionEnipInvalidServicesList OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION "Indicates that the services list in the Ethernet IP Command table is malformed (at least 1 service code must be set)."
           ::= { hm2FwSNMPExtensionGroup 7 }

hm2FwSNMPExtensionEnipInvalidClassesList OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION "Indicates that the class list in the Ethernet IP Command table is malformed (incorrect syntax)."
           ::= { hm2FwSNMPExtensionGroup 8 }

hm2FwSNMPExtensionEnipInvalidCmdListChange OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION "Indicates that the command list cannot be modified with the function type not set to advanced."
           ::= { hm2FwSNMPExtensionGroup 9 }

hm2FwSNMPExtensionEnipCommandDoesNotExist OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION "Indicates that a command referenced by the Ethernet IP Profile does not exist in the Ethernet IP Command table."
           ::= { hm2FwSNMPExtensionGroup 10 }


END
	
