--- /dev/null
+dn: cn=freeradius-tacacs,cn=schema,cn=config
+objectClass: olcSchemaConfig
+cn: freeradius-tacacs
+olcAttributeTypes: ( 1.3.6.1.4.1.11344.4.5.1.1.1 NAME 'tacacsClientSecret' DESC 'Client Secret' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+olcAttributeTypes: ( 1.3.6.1.4.1.11344.4.5.1.1.2 NAME 'tacacsClientSingleConnectionMode' DESC 'Set whether we allow and request single connection mode for this client' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
+olcObjectClasses: ( 1.3.6.1.4.1.11344.4.5.1.2.1 NAME 'tacacsClient' SUP top AUXILIARY MUST tacacsClientSecret MAY tacacsClientSingleConnectionMode )
--- /dev/null
+#
+# 11344.4.5.1.[1|2]
+# | | | | |_ .1 Profile attributes, .2 profile objects
+# | | | |_ Client
+# | | |_ RADIUS
+# | |_ LDAP Attributes
+# |_ Vendor
+#
+attributetype ( 1.3.6.1.4.1.11344.4.5.1.1.1
+ NAME 'tacacsClientSecret'
+ DESC 'Client Secret'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
+ SINGLE-VALUE
+ )
+
+ attributetype ( 1.3.6.1.4.1.11344.4.5.1.1.2
+ NAME 'tacacsClientSingleConnectionMode'
+ DESC 'Set whether we allow and request single connection mode for this client'
+ EQUALITY booleanMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
+ SINGLE-VALUE
+ )
+
+objectclass ( 1.3.6.1.4.1.11344.4.5.1.2.1
+ NAME 'tacacsClient'
+ SUP top
+ AUXILIARY
+ MUST ( tacacsClientSecret )
+ MAY (tacacsClientSingleConnectionMode)
+ )
1.3.6.1.4.1.11344.4.2 - RADIUS
1.3.6.1.4.1.11344.4.3 - DHCPv4
1.3.6.1.4.1.11344.4.4 - DHCPv6
+1.3.6.1.4.1.11344.4.5 - TACACS+
```
Next we distinguish between the types of object. There's usually three objects for each protocol