github.com/keysonZZZ/kmg@v0.0.0-20151121023212-05317bfd7d39/third/kmgRadius/AVPType.go (about)

     1  package kmgRadius
     2  
     3  import (
     4  	"strconv"
     5  )
     6  
     7  type AVPType uint8
     8  
     9  const (
    10  	//start rfc2865
    11  	AVPTypeUserName                     AVPType = 1
    12  	AVPTypeUserPassword                 AVPType = 2
    13  	AVPTypeCHAPPassword                 AVPType = 3
    14  	AVPTypeNASIPAddress                 AVPType = 4
    15  	AVPTypeNASPort                      AVPType = 5
    16  	AVPTypeServiceType                  AVPType = 6
    17  	AVPTypeFramedProtocol               AVPType = 7
    18  	AVPTypeFramedIPAddress              AVPType = 8  //8
    19  	AVPTypeFramedIPNetmask              AVPType = 9  //9
    20  	AVPTypeFramedRouting                AVPType = 10 //10
    21  	AVPTypeFilterId                     AVPType = 11 //11
    22  	AVPTypeFramedMTU                    AVPType = 12 //12
    23  	AVPTypeFramedCompression            AVPType = 13 //13
    24  	AVPTypeLoginIPHost                  AVPType = 14 //14
    25  	AVPTypeLoginService                 AVPType = 15 //15
    26  	AVPTypeLoginTCPPort                 AVPType = 16 //16
    27  	AVPTypeReplyMessage                 AVPType = 18 //18
    28  	AVPTypeCallbackNumber               AVPType = 19 //19
    29  	AVPTypeCallbackId                   AVPType = 20 //20
    30  	AVPTypeFramedRoute                  AVPType = 22 //22
    31  	AVPTypeFramedIPXNetwork             AVPType = 23 //23
    32  	AVPTypeState                        AVPType = 24 //24
    33  	AVPTypeClass                        AVPType = 25 //25
    34  	AVPTypeVendorSpecific               AVPType = 26
    35  	AVPTypeSessionTimeout               AVPType = 27
    36  	AVPTypeIdleTimeout                  AVPType = 28
    37  	AVPTypeTerminationAction            AVPType = 29
    38  	AVPTypeCalledStationId              AVPType = 30
    39  	AVPTypeCallingStationId             AVPType = 31
    40  	AVPTypeNASIdentifier                AVPType = 32
    41  	AVPTypeProxyState                   AVPType = 33
    42  	AVPTypeLoginLATService              AVPType = 34
    43  	AVPTypeLoginLATNode                 AVPType = 35
    44  	AVPTypeLoginLATGroup                AVPType = 36
    45  	AVPTypeFramedAppleTalkLink          AVPType = 37
    46  	AVPTypeFramedAppleTalkNetwork       AVPType = 38
    47  	AVPTypeFramedAppleTalkZone          AVPType = 39
    48  	AVPTypeAcctStatusType               AVPType = 40
    49  	AVPTypeAcctDelayTime                AVPType = 41
    50  	AVPTypeAcctInputOctets              AVPType = 42
    51  	AVPTypeAcctOutputOctets             AVPType = 43
    52  	AVPTypeAcctSessionId                AVPType = 44
    53  	AVPTypeAcctAuthentic                AVPType = 45
    54  	AVPTypeAcctSessionTime              AVPType = 46
    55  	AVPTypeAcctInputPackets             AVPType = 47
    56  	AVPTypeAcctOutputPackets            AVPType = 48
    57  	AVPTypeAcctTerminateCause           AVPType = 49
    58  	AVPTypeAcctMultiSessionId           AVPType = 50
    59  	AVPTypeAcctLinkCount                AVPType = 51
    60  	AVPTypeAcctInputGigawords           AVPType = 52 //52
    61  	AVPTypeAcctOutputGigawords          AVPType = 53
    62  	AVPTypeUnassigned1                  AVPType = 54
    63  	AVPTypeEventTimestamp               AVPType = 55
    64  	AVPTypeEgressVLANID                 AVPType = 56
    65  	AVPTypeIngressFilters               AVPType = 57
    66  	AVPTypeEgressVLANName               AVPType = 58
    67  	AVPTypeUserPriorityTable            AVPType = 59 //59
    68  	AVPTypeCHAPChallenge                AVPType = 60
    69  	AVPTypeNASPortType                  AVPType = 61
    70  	AVPTypePortLimit                    AVPType = 62
    71  	AVPTypeLoginLATPort                 AVPType = 63 //end rfc2865 rfc 2866
    72  	AVPTypeTunnelType                   AVPType = 64 //64
    73  	AVPTypeTunnelMediumType             AVPType = 65
    74  	AVPTypeTunnelClientEndpoint         AVPType = 66
    75  	AVPTypeTunnelServerEndpoint         AVPType = 67
    76  	AVPTypeAcctTunnelConnection         AVPType = 68
    77  	AVPTypeTunnelPassword               AVPType = 69
    78  	AVPTypeARAPPassword                 AVPType = 70
    79  	AVPTypeARAPFeatures                 AVPType = 71
    80  	AVPTypeARAPZoneAccess               AVPType = 72
    81  	AVPTypeARAPSecurity                 AVPType = 73
    82  	AVPTypeARAPSecurityData             AVPType = 74
    83  	AVPTypePasswordRetry                AVPType = 75
    84  	AVPTypePrompt                       AVPType = 76
    85  	AVPTypeConnectInfo                  AVPType = 77
    86  	AVPTypeConfigurationToken           AVPType = 78
    87  	AVPTypeEAPMessage                   AVPType = 79
    88  	AVPTypeMessageAuthenticator         AVPType = 80
    89  	AVPTypeTunnelPrivateGroupID         AVPType = 81
    90  	AVPTypeTunnelAssignmentID           AVPType = 82
    91  	AVPTypeTunnelPreference             AVPType = 83
    92  	AVPTypeARAPChallengeResponse        AVPType = 84
    93  	AVPTypeAcctInterimInterval          AVPType = 85
    94  	AVPTypeAcctTunnelPacketsLost        AVPType = 86
    95  	AVPTypeNASPortId                    AVPType = 87
    96  	AVPTypeFramedPool                   AVPType = 88
    97  	AVPTypeCUI                          AVPType = 89
    98  	AVPTypeTunnelClientAuthID           AVPType = 90
    99  	AVPTypeTunnelServerAuthID           AVPType = 91
   100  	AVPTypeNASFilterRule                AVPType = 92
   101  	AVPTypeUnassigned                   AVPType = 93
   102  	AVPTypeOriginatingLineInfo          AVPType = 94
   103  	AVPTypeNASIPv6Address               AVPType = 95
   104  	AVPTypeFramedInterfaceId            AVPType = 96
   105  	AVPTypeFramedIPv6Prefix             AVPType = 97
   106  	AVPTypeLoginIPv6Host                AVPType = 98
   107  	AVPTypeFramedIPv6Route              AVPType = 99
   108  	AVPTypeFramedIPv6Pool               AVPType = 100
   109  	AVPTypeErrorCause                   AVPType = 101
   110  	AVPTypeEAPKeyName                   AVPType = 102
   111  	AVPTypeDigestResponse               AVPType = 103
   112  	AVPTypeDigestRealm                  AVPType = 104
   113  	AVPTypeDigestNonce                  AVPType = 105
   114  	AVPTypeDigestResponseAuth           AVPType = 106
   115  	AVPTypeDigestNextnonce              AVPType = 107
   116  	AVPTypeDigestMethod                 AVPType = 108
   117  	AVPTypeDigestURI                    AVPType = 109
   118  	AVPTypeDigestQop                    AVPType = 110
   119  	AVPTypeDigestAlgorithm              AVPType = 111
   120  	AVPTypeDigestEntityBodyHash         AVPType = 112
   121  	AVPTypeDigestCNonce                 AVPType = 113
   122  	AVPTypeDigestNonceCount             AVPType = 114
   123  	AVPTypeDigestUsername               AVPType = 115
   124  	AVPTypeDigestOpaque                 AVPType = 116
   125  	AVPTypeDigestAuthParam              AVPType = 117
   126  	AVPTypeDigestAKAAuts                AVPType = 118
   127  	AVPTypeDigestDomain                 AVPType = 119
   128  	AVPTypeDigestStale                  AVPType = 120
   129  	AVPTypeDigestHA1                    AVPType = 121
   130  	AVPTypeSIPAOR                       AVPType = 122
   131  	AVPTypeDelegatedIPv6Prefix          AVPType = 123
   132  	AVPTypeMIP6FeatureVector            AVPType = 124
   133  	AVPTypeMIP6HomeLinkPrefix           AVPType = 125
   134  	AVPTypeOperatorName                 AVPType = 126
   135  	AVPTypeLocationInformation          AVPType = 127
   136  	AVPTypeLocationData                 AVPType = 128
   137  	AVPTypeBasicLocationPolicyRules     AVPType = 129
   138  	AVPTypeExtendedLocationPolicyRules  AVPType = 130
   139  	AVPTypeLocationCapable              AVPType = 131
   140  	AVPTypeRequestedLocationInfo        AVPType = 132
   141  	AVPTypeFramedManagementProtocol     AVPType = 133
   142  	AVPTypeManagementTransportProtectio AVPType = 134
   143  	AVPTypeManagementPolicyId           AVPType = 135
   144  	AVPTypeManagementPrivilegeLevel     AVPType = 136
   145  	AVPTypePKMSSCert                    AVPType = 137
   146  	AVPTypePKMCACert                    AVPType = 138
   147  	AVPTypePKMConfigSettings            AVPType = 139
   148  	AVPTypePKMCryptosuiteList           AVPType = 140
   149  	AVPTypePKMSAID                      AVPType = 141
   150  	AVPTypePKMSADescriptor              AVPType = 142
   151  	AVPTypePKMAuthKey                   AVPType = 143
   152  	AVPTypeDSLiteTunnelName             AVPType = 144
   153  	AVPTypeMobileNodeIdentifier         AVPType = 145
   154  	AVPTypeServiceSelection             AVPType = 146
   155  	AVPTypePMIP6HomeLMAIPv6Address      AVPType = 147
   156  	AVPTypePMIP6VisitedLMAIPv6Address   AVPType = 148
   157  	AVPTypePMIP6HomeLMAIPv4Address      AVPType = 149
   158  	AVPTypePMIP6VisitedLMAIPv4Address   AVPType = 150
   159  	AVPTypePMIP6HomeHNPrefix            AVPType = 151
   160  	AVPTypePMIP6VisitedHNPrefix         AVPType = 152
   161  	AVPTypePMIP6HomeInterfaceID         AVPType = 153
   162  	AVPTypePMIP6VisitedInterfaceID      AVPType = 154
   163  	AVPTypePMIP6HomeIPv4HoA             AVPType = 155
   164  	AVPTypePMIP6VisitedIPv4HoA          AVPType = 156
   165  	AVPTypePMIP6HomeDHCP4ServerAddress  AVPType = 157
   166  	AVPTypePMIP6VisitedDHCP4ServerAddre AVPType = 158
   167  	AVPTypePMIP6HomeDHCP6ServerAddress  AVPType = 159
   168  	AVPTypePMIP6VisitedDHCP6ServerAddre AVPType = 160
   169  	AVPTypeUnassignedStart              AVPType = 161
   170  	AVPTypeUnassignedEnd                AVPType = 191
   171  	AVPTypeExperimentalStart            AVPType = 192
   172  	AVPTypeExperimentalEnd              AVPType = 223
   173  	AVPTypeImplementationSpecificStart  AVPType = 224
   174  	AVPTypeImplementationSpecificEnd    AVPType = 240
   175  	AVPTypeReservedStart                AVPType = 241
   176  	AVPTypeReservedEnd                  AVPType = 254
   177  )
   178  
   179  func getTypeDesc(t AVPType) typeDesc {
   180  	desc := typeMap[int(t)]
   181  	if desc.decoder == nil {
   182  		desc.decoder = avpBinary
   183  	}
   184  	if desc.name == "" {
   185  		desc.name = "Unknow " + strconv.Itoa(int(t))
   186  	}
   187  	return desc
   188  }
   189  
   190  type typeDesc struct {
   191  	name    string
   192  	decoder func(p *Packet, typ AVPType, data []byte) (avp AVP, err error)
   193  }
   194  
   195  var typeMap = [256]typeDesc{
   196  	AVPTypeUserName:                     {"UserName", avpString},
   197  	AVPTypeUserPassword:                 {"UserPassword", avpPassword},
   198  	AVPTypeCHAPPassword:                 {"CHAPPassword", avpBinary},
   199  	AVPTypeNASIPAddress:                 {"NASIPAddress", avpIP},
   200  	AVPTypeNASPort:                      {"NASPort", avpUint32},
   201  	AVPTypeServiceType:                  {"ServiceType", avpUint32Enum(ServiceTypeEnum(0))},
   202  	AVPTypeFramedProtocol:               {"FramedProtocol", avpUint32},
   203  	AVPTypeFramedIPAddress:              {"FramedIPAddress", avpIP},
   204  	AVPTypeFramedIPNetmask:              {"FramedIPNetmask", avpIP},
   205  	AVPTypeFramedRouting:                {"FramedRouting", avpUint32},
   206  	AVPTypeFilterId:                     {"FilterId", avpString},
   207  	AVPTypeFramedMTU:                    {"FramedMTU", avpUint32},
   208  	AVPTypeFramedCompression:            {"FramedCompression", avpUint32},
   209  	AVPTypeLoginIPHost:                  {"LoginIPHost", avpIP},
   210  	AVPTypeLoginService:                 {"LoginService", avpUint32},
   211  	AVPTypeLoginTCPPort:                 {"LoginTCPPort", avpUint32},
   212  	AVPTypeReplyMessage:                 {"ReplyMessage", avpString},
   213  	AVPTypeCallbackNumber:               {"CallbackNumber", avpString},
   214  	AVPTypeCallbackId:                   {"CallbackId", avpString},
   215  	AVPTypeFramedRoute:                  {"FramedRoute", avpString},
   216  	AVPTypeFramedIPXNetwork:             {"FramedIPXNetwork", avpIP},
   217  	AVPTypeState:                        {"State", avpBinary},
   218  	AVPTypeClass:                        {"Class", avpString},
   219  	AVPTypeVendorSpecific:               {"VendorSpecific", avpVendorSpecific},
   220  	AVPTypeSessionTimeout:               {"SessionTimeout", avpUint32},
   221  	AVPTypeIdleTimeout:                  {"IdleTimeout", avpUint32},
   222  	AVPTypeTerminationAction:            {"TerminationAction", avpUint32},
   223  	AVPTypeCalledStationId:              {"CalledStationId", avpString},
   224  	AVPTypeCallingStationId:             {"CallingStationId", avpString},
   225  	AVPTypeNASIdentifier:                {"NASIdentifier", avpString},
   226  	AVPTypeProxyState:                   {"ProxyState", avpString},
   227  	AVPTypeLoginLATService:              {"LoginLATService", avpString},
   228  	AVPTypeLoginLATNode:                 {"LoginLATNode", avpString},
   229  	AVPTypeLoginLATGroup:                {"LoginLATGroup", avpString},
   230  	AVPTypeFramedAppleTalkLink:          {"FramedAppleTalkLink", avpUint32},
   231  	AVPTypeFramedAppleTalkNetwork:       {"FramedAppleTalkNetwork", avpUint32},
   232  	AVPTypeFramedAppleTalkZone:          {"FramedAppleTalkZone", avpUint32},
   233  	AVPTypeAcctStatusType:               {"AcctStatusType", avpUint32Enum(AcctStatusTypeEnum(0))},
   234  	AVPTypeAcctDelayTime:                {"AcctDelayTime", avpUint32},
   235  	AVPTypeAcctInputOctets:              {"AcctInputOctets", avpUint32},
   236  	AVPTypeAcctOutputOctets:             {"AcctOutputOctets", avpUint32},
   237  	AVPTypeAcctSessionId:                {"AcctSessionId", avpString},
   238  	AVPTypeAcctAuthentic:                {"AcctAuthentic", avpUint32},
   239  	AVPTypeAcctSessionTime:              {"AcctSessionTime", avpUint32},
   240  	AVPTypeAcctInputPackets:             {"AcctInputPackets", avpUint32},
   241  	AVPTypeAcctOutputPackets:            {"AcctOutputPackets", avpUint32},
   242  	AVPTypeAcctTerminateCause:           {"AcctTerminateCause", avpUint32Enum(AcctTerminateCauseEnum(0))},
   243  	AVPTypeAcctMultiSessionId:           {"AcctMultiSessionId", avpString},
   244  	AVPTypeAcctLinkCount:                {"AcctLinkCount", avpUint32},
   245  	AVPTypeAcctInputGigawords:           {"AcctInputGigawords", avpUint32},
   246  	AVPTypeAcctOutputGigawords:          {"AcctOutputGigawords", avpUint32},
   247  	AVPTypeUnassigned1:                  {"Unassigned1", avpBinary},
   248  	AVPTypeEventTimestamp:               {"EventTimestamp", avpBinary},
   249  	AVPTypeEgressVLANID:                 {"EgressVLANID", avpBinary},
   250  	AVPTypeIngressFilters:               {"IngressFilters", avpBinary},
   251  	AVPTypeEgressVLANName:               {"EgressVLANName", avpBinary},
   252  	AVPTypeUserPriorityTable:            {"UserPriorityTable", avpBinary},
   253  	AVPTypeCHAPChallenge:                {"CHAPChallenge", avpBinary},
   254  	AVPTypeNASPortType:                  {"NASPortType", avpUint32Enum(NASPortTypeEnum(0))},
   255  	AVPTypePortLimit:                    {"PortLimit", avpBinary},
   256  	AVPTypeLoginLATPort:                 {"LoginLATPort", avpBinary},
   257  	AVPTypeTunnelType:                   {"TunnelType", avpBinary},
   258  	AVPTypeTunnelMediumType:             {"TunnelMediumType", avpBinary},
   259  	AVPTypeTunnelClientEndpoint:         {"TunnelClientEndpoint", avpBinary},
   260  	AVPTypeTunnelServerEndpoint:         {"TunnelServerEndpoint", avpBinary},
   261  	AVPTypeAcctTunnelConnection:         {"AcctTunnelConnection", avpBinary},
   262  	AVPTypeTunnelPassword:               {"TunnelPassword", avpBinary},
   263  	AVPTypeARAPPassword:                 {"ARAPPassword", avpBinary},
   264  	AVPTypeARAPFeatures:                 {"ARAPFeatures", avpBinary},
   265  	AVPTypeARAPZoneAccess:               {"ARAPZoneAccess", avpBinary},
   266  	AVPTypeARAPSecurity:                 {"ARAPSecurity", avpBinary},
   267  	AVPTypeARAPSecurityData:             {"ARAPSecurityData", avpBinary},
   268  	AVPTypePasswordRetry:                {"PasswordRetry", avpBinary},
   269  	AVPTypePrompt:                       {"Prompt", avpBinary},
   270  	AVPTypeConnectInfo:                  {"ConnectInfo", avpBinary},
   271  	AVPTypeConfigurationToken:           {"ConfigurationToken", avpString},
   272  	AVPTypeEAPMessage:                   {"EAPMessage", avpEapMessage},
   273  	AVPTypeMessageAuthenticator:         {"MessageAuthenticator", avpBinary},
   274  	AVPTypeTunnelPrivateGroupID:         {"TunnelPrivateGroupID", avpBinary},
   275  	AVPTypeTunnelAssignmentID:           {"TunnelAssignmentID", avpBinary},
   276  	AVPTypeTunnelPreference:             {"TunnelPreference", avpBinary},
   277  	AVPTypeARAPChallengeResponse:        {"ARAPChallengeResponse", avpBinary},
   278  	AVPTypeAcctInterimInterval:          {"AcctInterimInterval", avpBinary},
   279  	AVPTypeAcctTunnelPacketsLost:        {"AcctTunnelPacketsLost", avpBinary},
   280  	AVPTypeNASPortId:                    {"NASPortId", avpString},
   281  	AVPTypeFramedPool:                   {"FramedPool", avpBinary},
   282  	AVPTypeCUI:                          {"CUI", avpBinary},
   283  	AVPTypeTunnelClientAuthID:           {"TunnelClientAuthID", avpBinary},
   284  	AVPTypeTunnelServerAuthID:           {"TunnelServerAuthID", avpBinary},
   285  	AVPTypeNASFilterRule:                {"NASFilterRule", avpBinary},
   286  	AVPTypeUnassigned:                   {"Unassigned", avpBinary},
   287  	AVPTypeOriginatingLineInfo:          {"OriginatingLineInfo", avpBinary},
   288  	AVPTypeNASIPv6Address:               {"NASIPv6Address", avpBinary},
   289  	AVPTypeFramedInterfaceId:            {"FramedInterfaceId", avpBinary},
   290  	AVPTypeFramedIPv6Prefix:             {"FramedIPv6Prefix", avpBinary},
   291  	AVPTypeLoginIPv6Host:                {"LoginIPv6Host", avpBinary},
   292  	AVPTypeFramedIPv6Route:              {"FramedIPv6Route", avpBinary},
   293  	AVPTypeFramedIPv6Pool:               {"FramedIPv6Pool", avpBinary},
   294  	AVPTypeErrorCause:                   {"ErrorCause", avpBinary},
   295  	AVPTypeEAPKeyName:                   {"EAPKeyName", avpBinary},
   296  	AVPTypeDigestResponse:               {"DigestResponse", avpBinary},
   297  	AVPTypeDigestRealm:                  {"DigestRealm", avpBinary},
   298  	AVPTypeDigestNonce:                  {"DigestNonce", avpBinary},
   299  	AVPTypeDigestResponseAuth:           {"DigestResponseAuth", avpBinary},
   300  	AVPTypeDigestNextnonce:              {"DigestNextnonce", avpBinary},
   301  	AVPTypeDigestMethod:                 {"DigestMethod", avpBinary},
   302  	AVPTypeDigestURI:                    {"DigestURI", avpBinary},
   303  	AVPTypeDigestQop:                    {"DigestQop", avpBinary},
   304  	AVPTypeDigestAlgorithm:              {"DigestAlgorithm", avpBinary},
   305  	AVPTypeDigestEntityBodyHash:         {"DigestEntityBodyHash", avpBinary},
   306  	AVPTypeDigestCNonce:                 {"DigestCNonce", avpBinary},
   307  	AVPTypeDigestNonceCount:             {"DigestNonceCount", avpBinary},
   308  	AVPTypeDigestUsername:               {"DigestUsername", avpBinary},
   309  	AVPTypeDigestOpaque:                 {"DigestOpaque", avpBinary},
   310  	AVPTypeDigestAuthParam:              {"DigestAuthParam", avpBinary},
   311  	AVPTypeDigestAKAAuts:                {"DigestAKAAuts", avpBinary},
   312  	AVPTypeDigestDomain:                 {"DigestDomain", avpBinary},
   313  	AVPTypeDigestStale:                  {"DigestStale", avpBinary},
   314  	AVPTypeDigestHA1:                    {"DigestHA1", avpBinary},
   315  	AVPTypeSIPAOR:                       {"SIPAOR", avpBinary},
   316  	AVPTypeDelegatedIPv6Prefix:          {"DelegatedIPv6Prefix", avpBinary},
   317  	AVPTypeMIP6FeatureVector:            {"MIP6FeatureVector", avpBinary},
   318  	AVPTypeMIP6HomeLinkPrefix:           {"MIP6HomeLinkPrefix", avpBinary},
   319  	AVPTypeOperatorName:                 {"OperatorName", avpBinary},
   320  	AVPTypeLocationInformation:          {"LocationInformation", avpBinary},
   321  	AVPTypeLocationData:                 {"LocationData", avpBinary},
   322  	AVPTypeBasicLocationPolicyRules:     {"BasicLocationPolicyRules", avpBinary},
   323  	AVPTypeExtendedLocationPolicyRules:  {"ExtendedLocationPolicyRules", avpBinary},
   324  	AVPTypeLocationCapable:              {"LocationCapable", avpBinary},
   325  	AVPTypeRequestedLocationInfo:        {"RequestedLocationInfo", avpBinary},
   326  	AVPTypeFramedManagementProtocol:     {"FramedManagementProtocol", avpBinary},
   327  	AVPTypeManagementTransportProtectio: {"ManagementTransportProtection", avpBinary},
   328  	AVPTypeManagementPolicyId:           {"ManagementPolicyId", avpBinary},
   329  	AVPTypeManagementPrivilegeLevel:     {"ManagementPrivilegeLevel", avpBinary},
   330  	AVPTypePKMSSCert:                    {"PKMSSCert", avpBinary},
   331  	AVPTypePKMCACert:                    {"PKMCACert", avpBinary},
   332  	AVPTypePKMConfigSettings:            {"PKMConfigSettings", avpBinary},
   333  	AVPTypePKMCryptosuiteList:           {"PKMCryptosuiteList", avpBinary},
   334  	AVPTypePKMSAID:                      {"PKMSAID", avpBinary},
   335  	AVPTypePKMSADescriptor:              {"PKMSADescriptor", avpBinary},
   336  	AVPTypePKMAuthKey:                   {"PKMAuthKey", avpBinary},
   337  	AVPTypeDSLiteTunnelName:             {"DSLiteTunnelName", avpBinary},
   338  	AVPTypeMobileNodeIdentifier:         {"MobileNodeIdentifier", avpBinary},
   339  	AVPTypeServiceSelection:             {"ServiceSelection", avpBinary},
   340  	AVPTypePMIP6HomeLMAIPv6Address:      {"PMIP6HomeLMAIPv6Address", avpBinary},
   341  	AVPTypePMIP6VisitedLMAIPv6Address:   {"PMIP6VisitedLMAIPv6Address", avpBinary},
   342  	AVPTypePMIP6HomeLMAIPv4Address:      {"PMIP6HomeLMAIPv4Address", avpBinary},
   343  	AVPTypePMIP6VisitedLMAIPv4Address:   {"PMIP6VisitedLMAIPv4Address", avpBinary},
   344  	AVPTypePMIP6HomeHNPrefix:            {"PMIP6HomeHNPrefix", avpBinary},
   345  	AVPTypePMIP6VisitedHNPrefix:         {"PMIP6VisitedHNPrefix", avpBinary},
   346  	AVPTypePMIP6HomeInterfaceID:         {"PMIP6HomeInterfaceID", avpBinary},
   347  	AVPTypePMIP6VisitedInterfaceID:      {"PMIP6VisitedInterfaceID", avpBinary},
   348  	AVPTypePMIP6HomeIPv4HoA:             {"PMIP6HomeIPv4HoA", avpBinary},
   349  	AVPTypePMIP6VisitedIPv4HoA:          {"PMIP6VisitedIPv4HoA", avpBinary},
   350  	AVPTypePMIP6HomeDHCP4ServerAddress:  {"PMIP6HomeDHCP4ServerAddress", avpBinary},
   351  	AVPTypePMIP6VisitedDHCP4ServerAddre: {"PMIP6VisitedDHCP4ServerAddress", avpBinary},
   352  	AVPTypePMIP6HomeDHCP6ServerAddress:  {"PMIP6HomeDHCP6ServerAddress", avpBinary},
   353  	AVPTypePMIP6VisitedDHCP6ServerAddre: {"PMIP6VisitedDHCP6ServerAddress", avpBinary},
   354  	AVPTypeUnassignedStart:              {"UnassignedStart", avpBinary}, //161
   355  	AVPTypeUnassignedEnd:                {"UnassignedEnd", avpBinary},
   356  	AVPTypeExperimentalStart:            {"ExperimentalStart", avpBinary},
   357  	AVPTypeExperimentalEnd:              {"ExperimentalEnd", avpBinary},
   358  	AVPTypeImplementationSpecificStart:  {"ImplementationSpecificStart", avpBinary},
   359  	AVPTypeImplementationSpecificEnd:    {"ImplementationSpecificEnd", avpBinary},
   360  	AVPTypeReservedStart:                {"ReservedStart", avpBinary},
   361  	AVPTypeReservedEnd:                  {"ReservedEnd", avpBinary},
   362  }
   363  
   364  func (a AVPType) String() string {
   365  	return getTypeDesc(a).name
   366  }