Navigation


Changeset 597:f051e3795dae in freeDiameter


Ignore:
Timestamp:
Nov 17, 2010, 7:56:35 PM (13 years ago)
Author:
Francois Bard <francois@tera.ics.keio.ac.jp>
Branch:
default
Children:
598:d46af51c019d, 599:1dade7d4cf2e
Phase:
public
Message:

Updates comments and a compiler dependent piece of code

Location:
extensions
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • extensions/dict_mip6a/dict_mip6a.c

    r595 r597  
    3434*********************************************************************************************************/
    3535
    36 /*********************************************************************************************************
     36/*
     37
    3738The following table complete the one in RFC 5778, page 18. The AVPs are implemented below following the order of this table.
    3839We try to keep the structure of the grouped AVP by declaring the contained AVPs just before the grouped AVP they depend on.
     
    4243
    4344        MIP6-Feature-Vector                     124     5447            Unsigned64
    44         User-Name                               1       3588            UTF8String              implemented in base protocol
     45        User-Name                               1       3588            UTF8String
    4546        Service-Selection                       493     5778            UTF8String
    4647        MIP-MN-AAA-SPI                          341     5778            Unsigned32
    4748+       MIP-Home-Agent-Address                  334     4004            Address
    48 ++      Destination-Host                        293     3588            DiameterIdentity        implemented in base protocol
    49 ++      Destination-Realm                       283     3588            DiameterIdentity        implemented in base protocol
     49++      Destination-Host                        293     3588            DiameterIdentity
     50++      Destination-Realm                       283     3588            DiameterIdentity
    5051+       MIP-Home-Agent-Host                     348     4004            Grouped
    5152+       MIP6-Home-Link-Prefix                   125     5447            OctetString
     
    7677        Accounting-Input-Packets                365     4004, 4005      Unsigned64
    7778        Accounting-Output-Packets               366     4004, 4005      Unsigned64
    78         Acct-Multi-Session-Id                   50      3588            UTF8String              implemented in base protocol
     79        Acct-Multi-Session-Id                   50      3588            UTF8String
    7980        Acct-Session-Time                       46      2866, 4004      Unsigned32
    8081        MIP6-Feature-Vector                     ----------------------------------
     
    8788        MIP-Careof-Address                      ----------------------------------
    8889
    89 REST OF THE AVPs IN THE MIR & MIA EXCLUDING *[AVP]
    90 
    91 MIP6-Request - Only a few radius AVPs have to be implemented.
    92 
    93         Session-ID                              263     3588 (diameter)
    94         Auth-Application-Id                     258     3588
    95         User-Name                               1       3588
    96         Destination-Realm                       283     3588
    97         Origin-Host                             264     3588
    98         Origin-Realm                            296     3588
    99         Auth-Request-Type                       274     3588
    100         Destination-Host                        293     3588
    101         Origin-State-Id                         278     3588
    102         NAS-Identifier                          32      2865 (radius)                           needed
    103         NAS-IP-Address                          4       2865                                    needed
    104         NAS-IPv6-Address                        95      3162                                    needed
    105         NAS-Port-Type                           61      2865                                    needed
    106         Called-Station-Id                       30      2865                                    needed
    107         Calling-Station-Id                      31      2865                                    needed
    108         MIP6-Feature-Vector                     ------------
    109         MIP6-Auth-Mode                          ------------
    110         MIP-MN-AAA-SPI                          ------------
    111         MIP-MN-HA-SPI                           ------------
    112         MIP-Mobile-Node-Address                 ------------
    113         MIP6-Agent-Info                         ------------
    114         MIP-Careof-Address                      ------------
    115         MIP-Authenticator                       ------------
    116         MIP-MAC-Mobility-Data                   ------------
    117         MIP-Timestamp                           ------------
    118         QoS-Capability                          ------------
    119         QoS-Resources                           ------------
    120         Chargeable-User-Identity                ------------
    121         Service-Selection                       ------------
    122         Authorization-Lifetime                  291     3588
    123         Auth-Session-State                      277     3588
    124         Proxy-Info                              284     3588
    125         Route-Record                            282     3588
    126 
    127 MIP6-Answer - All of them are already implemented as base protocol AVPs or implemented earlier.
    128 
    129         Session-Id                              263     3588 (diameter)
    130         Auth-Application-Id                     258     3588
    131         Result-Code                             268     3588
    132         Origin-Host                             264     3588
    133         Origin-Realm                            296     3588
    134         Auth-Request-Type                       274     3588
    135         User-Name                               1       3588
    136         Authorization-Lifetime                  291     3588
    137         Auth-Session-State                      277     3588
    138         Error-Message                           281     3588
    139         Error-Reporting-Host                    294     3588
    140         Re-Auth-Request-Type                    285     3588
    141         MIP6-Feature-Vector                     -------------------
    142         MIP-Agent-Info                          -------------------
    143         MIP-Mobile-Node-Address                 -------------------
    144         MIP-MN-HA-MSA                           -------------------
    145         QoS-Resources                           -------------------
    146         Chargeable-User-Identity                -------------------
    147         Service-Selection                       -------------------
    148         Origin-State-Id                         278     3588
    149         Proxy-Info                              284     3588
    150         Redirect-Host                           292     3588
    151         Redirect-Host-Usage                     261     3588
    152         Redirect-Max-Cache-Time                 262     3588
    153         Failed-AVP                              279     3588
    154 
    155 Other AVPs?
    156 
    157 ************************************************************************************************************/
     90RADIUS AVPs (contained in the MIR/MIA)
     91
     92        NAS-Identifier                          32      2865            radius (see avp)
     93        NAS-IP-Address                          4       2865            radius (see avp)
     94        NAS-IPv6-Address                        95      3162            radius (see avp)
     95        NAS-Port-Type                           61      2865            radius (see avp)
     96        Called-Station-Id                       30      2865            radius (see avp)
     97        Calling-Station-Id                      31      2865            radius (see avp)
     98
     99
     100*/
    158101
    159102/****************************************************************************************************************************************
     
    161104* This table is a copy of the registry named "MIP6 Authentication Mode Registry" and managed by IANA.                                   *
    162105* source : http://www.iana.org/assignments/aaa-parameters/aaa-parameters.txt                                                            *
    163 *                                                                                                                                       *
     106* up to date on october 2010                                                                                                            *
    164107*                                                                                                                                       *
    165108*      Value          Token       Reference                                                                                             *
     
    172115
    173116/*
    174         NOTES TO SELF
    175 
    176         - Reflechir au rangement des avps
    177         - Verifier si dans les grouped avps il faut aussi implementer les sous avp
    178         - verifier si les avps sont up-to-date, et ecrire la date a laquelle ils sont up-to-date
    179 
    180         - comment on fait pour les namespaces? (typiquement MIP6_AUTH_MN_AAA, RFC5778 page 30)
    181         - (pour linstant jai fait un define)
    182 
    183         -RELIRE ! jai peu quil y ait des fautes. surtout celle la.
     117
     118NOTES
     119
     120check for omissions !
    184121
    185122*/
     
    240177/* Defines if there are any */
    241178
    242 /* New Result-Code for MIP (RFC5778, Section 7.*) */
     179//New Result-Code for MIP (RFC5778, Section 7.*)
    243180#define DIAMETER_SUCCESS_RELOCATE_HA 2009
    244181#define DIAMETER_ERROR_MIP6_AUTH_MODE 5041
     182
     183//Others
    245184#define MIP6_AUTH_MN_AAA 1
    246185
     
    797736                }
    798737
    799         }
    800 
    801738        /////////////////////////////////////
    802739        /* Radius AVPs - used in MIR & MIA */
    803740        /////////////////////////////////////
    804741
    805                 /*
    806                  *
    807                  * voir MIP6I
    808                  *
    809                 NAS-Identifier                          32      2865 (radius)
    810                 NAS-IP-Address                          4       2865
    811                 NAS-IPv6-Address                        95      3162
    812                 NAS-Port-Type                           61      2865
    813                 Called-Station-Id                       30      2865
    814                 Calling-Station-Id                      31      2865
    815                  */
    816 
    817 
     742        /*
     743        We used the following correspondences for determining the type of the Radius AVPs
     744
     745                Radius          Diameter
     746
     747                text            UTF8Sting
     748                string          OctetString
     749                address         Address
     750                integer         Unsigned32
     751                time            Time
     752        */
     753
     754
     755                /* NAS-Identifier                               32      3575 */
     756                {
     757                        /*
     758                        string -> OctetString
     759                        */
     760
     761                        struct dict_avp_data data = {
     762                                        32,                                     /* Code */
     763                                        0,                                      /* Vendor */
     764                                        "NAS-Identifier",                       /* Name */
     765                                        AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,   /* Fixed flags */
     766                                        AVP_FLAG_MANDATORY,                     /* Fixed flag values */
     767                                        AVP_TYPE_OCTETSTRING                    /* base type of data */
     768                                        };
     769
     770                        CHECK_dict_new( DICT_AVP, &data , NULL, NULL);
     771                }
     772
     773                /* NAS-IP-Address                               4       3575 */
     774                {
     775                        /*
     776                        address -> Address
     777                        */
     778
     779                        struct dict_avp_data data = {
     780                                        4,                                      /* Code */
     781                                        0,                                      /* Vendor */
     782                                        "NAS-IP-Address",                       /* Name */
     783                                        AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,   /* Fixed flags */
     784                                        AVP_FLAG_MANDATORY,                     /* Fixed flag values */
     785                                        AVP_TYPE_OCTETSTRING                    /* base type of data */
     786                                        };
     787
     788                        CHECK_dict_new( DICT_AVP, &data , Address_type, NULL);
     789                }
     790
     791                /* NAS-IPv6-Address                     95      3162 */
     792                {
     793                        /*
     794                        address -> Address
     795                        */
     796
     797                        struct dict_avp_data data = {
     798                                        95,                                     /* Code */
     799                                        0,                                      /* Vendor */
     800                                        "NAS-IPv6-Address",                     /* Name */
     801                                        AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,   /* Fixed flags */
     802                                        AVP_FLAG_MANDATORY,                     /* Fixed flag values */
     803                                        AVP_TYPE_OCTETSTRING                    /* base type of data */
     804                                        };
     805
     806                        CHECK_dict_new( DICT_AVP, &data , Address_type, NULL);
     807                }
     808
     809                /* NAS-Port-Type                        61      2865 */
     810                {
     811                        /*
     812                        integer -> Unsigned32
     813
     814                           Value
     815
     816                              The Value field is four octets.  "Virtual" refers to a connection
     817                              to the NAS via some transport protocol, instead of through a
     818                              physical port.  For example, if a user telnetted into a NAS to
     819                              authenticate himself as an Outbound-User, the Access-Request might
     820                              include NAS-Port-Type = Virtual as a hint to the RADIUS server
     821                              that the user was not on a physical port.
     822
     823                              0       Async
     824                              1       Sync
     825                              2       ISDN Sync
     826                              3       ISDN Async V.120
     827                              4       ISDN Async V.110
     828                              5       Virtual
     829                              6       PIAFS
     830                              7       HDLC Clear Channel
     831                              8       X.25
     832                              9       X.75
     833                              10      G.3 Fax
     834                              11      SDSL - Symmetric DSL
     835                              12      ADSL-CAP - Asymmetric DSL, Carrierless Amplitude Phase
     836                                      Modulation
     837                              13      ADSL-DMT - Asymmetric DSL, Discrete Multi-Tone
     838                              14      IDSL - ISDN Digital Subscriber Line
     839                              15      Ethernet
     840                              16      xDSL - Digital Subscriber Line of unknown type
     841                              17      Cable
     842                              18      Wireless - Other
     843                              19      Wireless - IEEE 802.11
     844
     845                              PIAFS is a form of wireless ISDN commonly used in Japan, and
     846                              stands for PHS (Personal Handyphone System) Internet Access Forum
     847                              Standard (PIAFS).
     848                        */
     849
     850                        struct dict_avp_data data = {
     851                                        61,                                     /* Code */
     852                                        0,                                      /* Vendor */
     853                                        "NAS-Port-Type",                        /* Name */
     854                                        AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,   /* Fixed flags */
     855                                        AVP_FLAG_MANDATORY,                     /* Fixed flag values */
     856                                        AVP_TYPE_UNSIGNED32                     /* base type of data */
     857                                        };
     858
     859                        CHECK_dict_new( DICT_AVP, &data , NULL, NULL);
     860                }
     861
     862                /* Called-Station-Id                    30      2865 */
     863                {
     864                        /*
     865                        string -> OctetString
     866                        */
     867
     868                        struct dict_avp_data data = {
     869                                        30,                                     /* Code */
     870                                        0,                                      /* Vendor */
     871                                        "Called-Station-Id",                    /* Name */
     872                                        AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,   /* Fixed flags */
     873                                        AVP_FLAG_MANDATORY,                     /* Fixed flag values */
     874                                        AVP_TYPE_OCTETSTRING                    /* base type of data */
     875                                        };
     876
     877                        CHECK_dict_new( DICT_AVP, &data , NULL, NULL);
     878                }
     879                /* Calling-Station-Id                   31      2865 */
     880                {
     881                        /*
     882                        string -> OctetString
     883                        */
     884
     885                        struct dict_avp_data data = {
     886                                        31,                                     /* Code */
     887                                        0,                                      /* Vendor */
     888                                        "Calling-Station-Id",                   /* Name */
     889                                        AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,   /* Fixed flags */
     890                                        AVP_FLAG_MANDATORY,                     /* Fixed flag values */
     891                                        AVP_TYPE_OCTETSTRING                    /* base type of data */
     892                                        };
     893
     894                        CHECK_dict_new( DICT_AVP, &data , NULL, NULL);
     895                }
     896        }
     897
     898/*******************/
     899/* Command section */
     900/*******************/
     901
     902        {
     903                /* MIP6-Request (MIR) */
     904                {
     905                        /*
     906
     907                        The MIP6-Request (MIR), indicated by the Command-Code field set to
     908                        325 and the 'R' bit set in the Command Flags field, is sent by the
     909                        HA, acting as a Diameter client, in order to request the
     910                        authentication and authorization of an MN.
     911
     912                        Although the HA provides the Diameter server with replay protection-
     913                        related information, the HA is responsible for the replay protection.
     914
     915                        The message format is shown below.
     916
     917                        <MIP6-Request> ::= < Diameter Header: 325, REQ, PXY >
     918                                           < Session-ID >
     919                                           { Auth-Application-Id }
     920                                           { User-Name }
     921                                           { Destination-Realm }
     922                                           { Origin-Host }
     923                                           { Origin-Realm }
     924                                           { Auth-Request-Type }
     925                                           [ Destination-Host ]
     926                                           [ Origin-State-Id ]
     927                                           [ NAS-Identifier ]
     928                                           [ NAS-IP-Address ]
     929                                           [ NAS-IPv6-Address ]
     930                                           [ NAS-Port-Type ]
     931                                           [ Called-Station-Id ]
     932                                           [ Calling-Station-Id ]
     933                                           [ MIP6-Feature-Vector ]
     934                                           { MIP6-Auth-Mode }
     935                                           [ MIP-MN-AAA-SPI ]
     936                                           [ MIP-MN-HA-SPI ]
     937                                        1*2{ MIP-Mobile-Node-Address }
     938                                           { MIP6-Agent-Info }
     939                                           { MIP-Careof-Address }
     940                                           [ MIP-Authenticator ]
     941                                           [ MIP-MAC-Mobility-Data ]
     942                                           [ MIP-Timestamp ]
     943                                           [ QoS-Capability ]
     944                                         * [ QoS-Resources ]
     945                                           [ Chargeable-User-Identity ]
     946                                           [ Service-Selection ]
     947                                           [ Authorization-Lifetime ]
     948                                           [ Auth-Session-State ]
     949                                         * [ Proxy-Info ]
     950                                         * [ Route-Record ]
     951                                         * [ AVP ]
     952
     953                        If the MN is both authenticated and authorized for the mobility
     954                        service, then the Auth-Request-Type AVP is set to the value
     955                        AUTHORIZE_AUTHENTICATE.  This is the case when the MIP6-Auth-Mode is
     956                        set to the value MIP6_AUTH_MN_AAA.
     957
     958                        */
     959                        struct dict_object * cmd;
     960                        struct dict_cmd_data data = {
     961                                        325,                                    /* Code */
     962                                        "MIP6-Request",                         /* Name */
     963                                        CMD_FLAG_REQUEST | CMD_FLAG_PROXIABLE | CMD_FLAG_ERROR,         /* Fixed flags */
     964                                        CMD_FLAG_PROXIABLE                                              /* Fixed flag values */
     965                                        };
     966                        struct local_rules_definition rules[] =
     967                                                {        {  "Session-Id",                       RULE_FIXED_HEAD, -1, 1 }
     968                                                        ,{  "Auth-Application-Id",              RULE_REQUIRED,   -1, 1 }
     969                                                        ,{  "User-Name",                        RULE_REQUIRED,   -1, 1 }
     970                                                        ,{  "Destination-Realm",                RULE_REQUIRED,   -1, 1 }
     971                                                        ,{  "Origin-Host",                      RULE_REQUIRED,   -1, 1 }
     972                                                        ,{  "Origin-Realm",                     RULE_REQUIRED,   -1, 1 }
     973                                                        ,{  "Auth-Request-Type",                RULE_REQUIRED,   -1, 1 }
     974                                                        ,{  "Destination-Host",                 RULE_OPTIONAL,   -1, 1 }
     975                                                        ,{  "Origin-State-Id",                  RULE_OPTIONAL,   -1, 1 }
     976                                                        ,{  "NAS-Identifier",                   RULE_OPTIONAL,   -1, 1 }
     977                                                        ,{  "NAS-IP-Address",                   RULE_OPTIONAL,   -1, 1 }
     978                                                        ,{  "NAS-IPv6-Address",                 RULE_OPTIONAL,   -1, 1 }
     979                                                        ,{  "NAS-Port-Type",                    RULE_OPTIONAL,   -1, 1 }
     980                                                        ,{  "Called-Station-Id",                RULE_OPTIONAL,   -1, 1 }
     981                                                        ,{  "Calling-Station-Id",               RULE_OPTIONAL,   -1, 1 }
     982                                                        ,{  "MIP6-Feature-Vector",              RULE_OPTIONAL,   -1, 1 }
     983                                                        ,{  "MIP6-Auth-Mode",                   RULE_OPTIONAL,   -1, 1 }
     984                                                        ,{  "MIP-MN-AAA-SPI",                   RULE_OPTIONAL,   -1, 1 }
     985                                                        ,{  "MIP-MN-HA-SPI",                    RULE_OPTIONAL,   -1, 1 }
     986                                                        ,{  "MIP-Mobile-Node-Address",          RULE_OPTIONAL,    1, 2 }
     987                                                        ,{  "MIP6-Agent-Info",                  RULE_OPTIONAL,   -1, 1 }
     988                                                        ,{  "MIP-Careof-Address",               RULE_OPTIONAL,   -1, 1 }
     989                                                        ,{  "MIP-Authenticator",                RULE_OPTIONAL,   -1, 1 }
     990                                                        ,{  "MIP-MAC-Mobility-Data",            RULE_OPTIONAL,   -1, 1 }
     991                                                        ,{  "MIP-Timestamp",                    RULE_OPTIONAL,   -1, 1 }
     992                                                        ,{  "QoS-Capability",                   RULE_OPTIONAL,   -1, 1 }
     993                                                        ,{  "QoS-Resources",                    RULE_OPTIONAL,   -1, -1 }
     994                                                        ,{  "Chargeable-User-Identity",         RULE_OPTIONAL,   -1, 1 }
     995                                                        ,{  "Service-Selection",                RULE_OPTIONAL,   -1, 1 }
     996                                                        ,{  "Authorization-Lifetime",           RULE_OPTIONAL,   -1, 1 }
     997                                                        ,{  "Auth-Session-State",               RULE_OPTIONAL,   -1, 1 }
     998                                                        ,{  "Proxy-Info",                       RULE_OPTIONAL,   -1, -1 }
     999                                                        ,{  "Route-Record",                     RULE_OPTIONAL,   -1, -1 }
     1000                                                };
     1001
     1002                        CHECK_dict_new( DICT_COMMAND, &data , mip6i, &cmd);
     1003                        PARSE_loc_rules( rules, cmd );
     1004                }
     1005
     1006                /* MIP6-Answer (MIA) */
     1007                {
     1008                        /*
     1009
     1010                        The MIP6-Answer (MIA) message, indicated by the Command-Code field
     1011                        set to 325 and the 'R' bit cleared in the Command Flags field, is
     1012                        sent by the Diameter server in response to the MIP6-Request message.
     1013
     1014                        The User-Name AVP MAY be included in the MIA if it is present in the
     1015                        MIR.  The Result-Code AVP MAY contain one of the values defined in
     1016                        Section 7, in addition to the values defined in [RFC3588].
     1017
     1018                        An MIA message with the Result-Code AVP set to DIAMETER_SUCCESS MUST
     1019                        include the MIP-Mobile-Node-Address AVP.
     1020
     1021                        The message format is shown below.
     1022
     1023                        <MIP6-Answer> ::= < Diameter Header: 325, PXY >
     1024                                          < Session-Id >
     1025                                          { Auth-Application-Id }
     1026                                          { Result-Code }
     1027                                          { Origin-Host }
     1028                                          { Origin-Realm }
     1029                                          { Auth-Request-Type }
     1030                                          [ User-Name ]
     1031                                          [ Authorization-Lifetime ]
     1032                                          [ Auth-Session-State ]
     1033                                          [ Error-Message ]
     1034                                          [ Error-Reporting-Host ]
     1035                                          [ Re-Auth-Request-Type ]
     1036                                          [ MIP6-Feature-Vector ]
     1037                                          [ MIP-Agent-Info ]
     1038                                        *2[ MIP-Mobile-Node-Address ]
     1039                                          [ MIP-MN-HA-MSA ]
     1040                                        * [ QoS-Resources ]
     1041                                          [ Chargeable-User-Identity ]
     1042                                          [ Service-Selection ]
     1043                                          [ Origin-State-Id ]
     1044                                        * [ Proxy-Info ]
     1045                                        * [ Redirect-Host ]
     1046                                          [ Redirect-Host-Usage ]
     1047                                          [ Redirect-Max-Cache-Time ]
     1048                                        * [ Failed-AVP ]
     1049                                        * [ AVP ]
     1050
     1051                        */
     1052                        struct dict_object * cmd;
     1053                        struct dict_cmd_data data = {
     1054                                        325,                                    /* Code */
     1055                                        "MIP6-Answer",                          /* Name */
     1056                                        CMD_FLAG_PROXIABLE | CMD_FLAG_ERROR,    /* Fixed flags */
     1057                                        CMD_FLAG_PROXIABLE                      /* Fixed flag values */
     1058                                        };
     1059                        struct local_rules_definition rules[] =
     1060                                                {        {  "Session-Id",                       RULE_FIXED_HEAD, -1, 1 }
     1061                                                        ,{  "Auth-Application-Id",              RULE_REQUIRED,   -1, 1 }
     1062                                                        ,{  "Result-Code",                      RULE_REQUIRED,   -1, 1 }
     1063                                                        ,{  "Origin-Host",                      RULE_REQUIRED,   -1, 1 }
     1064                                                        ,{  "Origin-Realm",                     RULE_REQUIRED,   -1, 1 }
     1065                                                        ,{  "Auth-Request-Type",                RULE_REQUIRED,   -1, 1 }
     1066                                                        ,{  "User-Name",                        RULE_OPTIONAL,   -1, 1 }
     1067                                                        ,{  "Authorization-Lifetime",           RULE_OPTIONAL,   -1, 1 }
     1068                                                        ,{  "Auth-Session-State",               RULE_OPTIONAL,   -1, 1 }
     1069                                                        ,{  "Error-Message",                    RULE_OPTIONAL,   -1, 1 }
     1070                                                        ,{  "Error-Reporting-Host",             RULE_OPTIONAL,   -1, 1 }
     1071                                                        ,{  "Re-Auth-Request-Type",             RULE_OPTIONAL,   -1, 1 }
     1072                                                        ,{  "MIP6-Feature-Vector",              RULE_OPTIONAL,   -1, 1 }
     1073                                                        ,{  "MIP-Agent-Info",                   RULE_OPTIONAL,   -1, 1 }
     1074                                                        ,{  "MIP-Mobile-Node-Address",          RULE_OPTIONAL,   -1, 2 }
     1075                                                        ,{  "MIP-MN-HA-MSA",                    RULE_OPTIONAL,   -1, 1 }
     1076                                                        ,{  "QoS-Resources",                    RULE_OPTIONAL,   -1, -1 }
     1077                                                        ,{  "Chargeable-User-Identity",         RULE_OPTIONAL,   -1, 1 }
     1078                                                        ,{  "Service-Selection",                RULE_OPTIONAL,   -1, 1 }
     1079                                                        ,{  "Origin-State-Id",                  RULE_OPTIONAL,   -1, 1 }
     1080                                                        ,{  "Proxy-Info",                       RULE_OPTIONAL,   -1, -1 }
     1081                                                        ,{  "Redirect-Host",                    RULE_OPTIONAL,   -1, -1 }
     1082                                                        ,{  "Redirect-Host-Usage",              RULE_OPTIONAL,   -1, 1 }
     1083                                                        ,{  "Redirect-Max-Cache-Time",          RULE_OPTIONAL,   -1, 1 }
     1084                                                        ,{  "Failed-AVP",                       RULE_OPTIONAL,   -1, -1 }
     1085                                                };
     1086
     1087                        CHECK_dict_new( DICT_COMMAND, &data , mip6i, &cmd);
     1088                        PARSE_loc_rules( rules, cmd );
     1089                }
     1090        }
    8181091        TRACE_DEBUG(INFO, "Dictionary Extension 'Diameter Mobile IPv6 Auth (MIP6A)' initialized");
    8191092        return 0;
  • extensions/dict_mip6i/dict_mip6i.c

    r595 r597  
    3434*********************************************************************************************************/
    3535
    36 /*********************************************************************************************************
     36/*
     37
    3738The following table complete the one in RFC 5778, page 18. The AVPs are implemented below following the order of this table.
    3839We try to keep the structure of the grouped AVP by declaring the contained AVPs just before the grouped AVP they depend on.
     
    4445        MIP-Mobile-Node-Address                 333     4004            Address
    4546+       MIP-Home-Agent-Address                  334     4004            Address
    46 ++      Destination-Host                        293     3588            DiameterIdentity        implemented in base protocol
    47 ++      Destination-Realm                       283     3588            DiameterIdentity        implemented in base protocol
     47++      Destination-Host                        293     3588            DiameterIdentity
     48++      Destination-Realm                       283     3588            DiameterIdentity
    4849+       MIP-Home-Agent-Host                     348     4004            Grouped
    4950+       MIP6-Home-Link-Prefix                   125     5447            OctetString
    5051        MIP6-Agent-Info                         486     5447            Grouped
    51         User-Name                               1       3588            UTF8String              implemented in base protocol
     52        User-Name                               1       3588            UTF8String
    5253        Service-Selection                       493     5778            UTF8String
    5354+       MIP-Replay-Mode                         346     4004            Enumerated
     
    7071        Accounting-Input-Packets                365     4004, 4005      Unsigned64
    7172        Accounting-Output-Packets               366     4004, 4005      Unsigned64
    72         Acct-Multi-Session-Id                   50      3588            UTF8String              implemented in base protocol
     73        Acct-Multi-Session-Id                   50      3588            UTF8String
    7374        Acct-Session-Time                       46      2866, 4004      Unsigned32
    7475        MIP6-Feature-Vector                     ----------------------------------
     
    7980        QoS-Resources                           ----------------------------------
    8081        QoS-Capability                          ----------------------------------
    81         MIP-Careof-Address                      487     5778            Address                 needed in MIP6I at least for implementation reasons
    82 
    83 REST OF THE AVPs IN THE MIR & MIA EXCLUDING *[AVP]
     82        MIP-Careof-Address                      487     5778            Address                 needed (appears in MIR/MIA)
     83
     84REST OF THE AVPs IN THE MIR & MIA EXCLUDING *[AVP] (as written on page 19 of RFC 5778)
    8485
    8586MIP6-Request
    8687
    87         Session-ID                              263     3588 (diameter)
     88        Session-ID                              263     3588
    8889        Auth-Application-Id                     258     3588
    8990        User-Name                               1       3588
     
    9293        Origin-Realm                            296     3588
    9394        Auth-Request-Type                       274     3588
    94         Destination-Host                        293     3588
    9595        Origin-State-Id                         278     3588
    96         NAS-Identifier                          32      2865 (radius)   string...               needed
    97         NAS-IP-Address                          4       2865             ??                     needed
    98         NAS-IPv6-Address                        95      3162             ??                     needed
    99         NAS-Port-Type                           61      2865             ??                     needed
    100         Called-Station-Id                       30      2865             ??                     needed
    101         Calling-Station-Id                      31      2865             ??                     needed
     96        NAS-Identifier                          32      2865            radius (see avp)        needed (radius)
     97        NAS-IP-Address                          4       2865            radius (see avp)        needed (radius)
     98        NAS-IPv6-Address                        95      3162            radius (see avp)        needed (radius)
     99        NAS-Port-Type                           61      2865            radius (see avp)        needed (radius)
     100        Called-Station-Id                       30      2865            radius (see avp)        needed (radius)
     101        Calling-Station-Id                      31      2865            radius (see avp)        needed (radius)
    102102        MIP6-Feature-Vector                     ------------
    103         MIP6-Auth-Mode                          494     5778            Enumerated              needed in MIP6I at least for implementation reasons
    104         MIP-MN-AAA-SPI                          341     5778            Unsigned32              needed in MIP6I at least for implementation reasons
     103        MIP6-Auth-Mode                          494     5778            Enumerated              needed (mip6a)
     104        MIP-MN-AAA-SPI                          341     5778            Unsigned32              needed (mip6a)
    105105        MIP-MN-HA-SPI                           ------------
    106106        MIP-Mobile-Node-Address                 ------------
    107107        MIP6-Agent-Info                         ------------
    108108        MIP-Careof-Address                      ------------
    109         MIP-Authenticator                       488     5778            OctetString             needed in MIP6I at least for implementation reasons
    110         MIP-MAC-Mobility-Data                   489     5778            OctetString             needed in MIP6I at least for implementation reasons
    111         MIP-Timestamp                           490     5778            OctetString             needed in MIP6I at least for implementation reasons
     109        MIP-Authenticator                       488     5778            OctetString             needed (mip6a)
     110        MIP-MAC-Mobility-Data                   489     5778            OctetString             needed (mip6a)
     111        MIP-Timestamp                           490     5778            OctetString             needed (mip6a)
    112112        QoS-Capability                          ------------
    113113        QoS-Resources                           ------------
     
    121121MIP6-Answer - All of them are already implemented as base protocol AVPs or implemented earlier.
    122122
    123         Session-Id                              263     3588 (diameter)
    124         Auth-Application-Id                     258     3588
    125         Result-Code                             268     3588
    126         Origin-Host                             264     3588
    127         Origin-Realm                            296     3588
    128         Auth-Request-Type                       274     3588
    129         User-Name                               1       3588
    130         Authorization-Lifetime                  291     3588
    131         Auth-Session-State                      277     3588
    132         Error-Message                           281     3588
    133         Error-Reporting-Host                    294     3588
    134         Re-Auth-Request-Type                    285     3588
    135         MIP6-Feature-Vector                     -------------------
    136         MIP-Agent-Info                          -------------------
    137         MIP-Mobile-Node-Address                 -------------------
    138         MIP-MN-HA-MSA                           -------------------
    139         QoS-Resources                           -------------------
    140         Chargeable-User-Identity                -------------------
    141         Service-Selection                       -------------------
    142         Origin-State-Id                         278     3588
    143         Proxy-Info                              284     3588
    144         Redirect-Host                           292     3588
    145         Redirect-Host-Usage                     261     3588
    146         Redirect-Max-Cache-Time                 262     3588
    147         Failed-AVP                              279     3588
    148 
    149 Other AVPs?
    150 
    151 ************************************************************************************************************/
     123*/
    152124
    153125/****************************************************************************************************************************************
     
    155127* This table is a copy of the registry named "MIP6 Authentication Mode Registry" and managed by IANA.                                   *
    156128* source : http://www.iana.org/assignments/aaa-parameters/aaa-parameters.txt                                                            *
    157 *                                                                                                                                       *
     129* up to date on october 2010                                                                                                            *
    158130*                                                                                                                                       *
    159131*      Value          Token       Reference                                                                                             *
     
    166138
    167139/*
    168         NOTES TO SELF
    169 
    170         http://www.iana.org/assignments/aaa-parameters/aaa-parameters.txt
    171         important, a suivre et verifier si il y a des evolutions
    172 
    173         - a quoi sert le int dict---init juste avant le debut du dico?
    174 
    175         -verifier si je ne fais pas des define pour rien
    176 
    177         -dire de pas oublier d'inclure le dictionnaire eap
    178 
    179         inclure la rfc5777? ou le faire dans un autre fichier?
    180 
    181         la valeur MIP6_AUTH_MN_AAA est utilisee par quoi?? verifier.
    182 
    183         ne pas oublier de changer la clause bsd
    184 
    185 
    186 
    187 
     140
     141NOTES
     142
     143check for omissions !
    188144
    189145*/
     
    244200/* Defines if there are any */
    245201
    246 /* New Result-Code for MIP (RFC5778, Section 7.*) */
     202//New Result-Code for MIP (RFC5778, Section 7.*)
    247203#define DIAMETER_SUCCESS_RELOCATE_HA 2009
    248204#define DIAMETER_ERROR_MIP6_AUTH_MODE 5041
     205
     206//others
    249207#define MIP6_AUTH_MN_AAA 1
    250208
     
    872830
    873831        ///////////////////////////////////////////////////////////
    874         /* Other AVPs needed in MIP6I for implementation reasons */
     832        /* REST OF THE AVP IN THE MIR AND MIA EXCLUDING *[AVP]  */
    875833        ///////////////////////////////////////////////////////////
    876834
  • extensions/dict_nas_mipv6/dict_nas_mipv6.c

    r595 r597  
    3434*********************************************************************************************************/
    3535
    36 /*********************************************************************************************************
     36/*
     37
    3738The following table lists the AVPs needed for the NAS to HAAA server interaction.
    3839We try to keep the structure of the grouped AVP by declaring the contained AVPs just before the grouped AVP they depend on.
     
    4950        MIP6-Agent-Info                         486             5447    Grouped                 yes
    5051
    51 ************************************************************************************************************/
     52*/
    5253
    5354
    5455
    5556#include <freeDiameter/extension.h>
    56 
    57 /*
    58         NOTES TO SELF
    59 
    60         - il faudra verifier les regles particulieres (page 6 de la rfc) 'au moins un des deux avps'
    61 
    62         - IMPLEMENTER LES AVPS QUI MANQUENT
    63 
    64 */
    6557
    6658/* The content of this file follows the same structure as dict_base_proto.c */
     
    139131        /* AVP section */
    140132        {
     133                /* Loading the derived data formats */
     134
     135                struct dict_object * Address_type;
     136                CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "Address", &Address_type);
     137
    141138                /* MIP6-Feature-Vector */
    142139                {
     
    158155
    159156                /* MIP-Home-Agent-Address - RFC 4004 */
     157                {
     158                        /*
     159
     160                        */
     161
     162                        struct dict_avp_data data = {
     163                                        334,                                    /* Code */
     164                                        0,                                      /* Vendor */
     165                                        "MIP-Home-Agent-Address",               /* Name */
     166                                        AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,   /* Fixed flags */
     167                                        AVP_FLAG_MANDATORY,                     /* Fixed flag values */
     168                                        AVP_TYPE_OCTETSTRING                    /* base type of data */
     169                                        };
     170
     171                        CHECK_dict_new( DICT_AVP, &data , Address_type, NULL);
     172                }
    160173
    161174                /* Destination-Host - Base Protocol */
     
    164177
    165178                /* MIP-Home-Agent-Host - RFC 4004 */
     179                {
     180                        /*
     181                        The MIP-Home-Agent-Host AVP (AVP Code 348) is of type Grouped and
     182                        contains the identity of the assigned Home Agent.  If the MIP-Home-
     183                        Agent-Host AVP is present in the AMR, the AAAH MUST copy it into the
     184                        HAR.
     185
     186                         MIP-Home-Agent-Host ::= < AVP Header: 348 >
     187                                                  { Destination-Realm }
     188                                                  { Destination-Host }
     189                                                * [ AVP ]
     190                        */
     191
     192                        struct dict_object * avp;
     193                        struct dict_avp_data data = {
     194                                        348,                                    /* Code */
     195                                        0,                                      /* Vendor */
     196                                        "MIP-Home-Agent-Host",                  /* Name */
     197                                        AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,   /* Fixed flags */
     198                                        AVP_FLAG_MANDATORY,                     /* Fixed flag values */
     199                                        AVP_TYPE_GROUPED                        /* base type of data */
     200                                        };
     201
     202                        struct local_rules_definition rules[] =
     203                                                {        {  "Destination-Realm",        RULE_REQUIRED, -1, 1 }
     204                                                        ,{  "Destination-Host",         RULE_REQUIRED, -1, 1 }
     205                                                };
     206
     207                        CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
     208                        PARSE_loc_rules( rules, avp );
     209                }
    166210
    167211                /* MIP6-Home-Link-Prefix */
  • extensions/dict_rfc5777/dict_rfc5777.c

    r595 r597  
    3434*********************************************************************************************************/
    3535
    36 /*********************************************************************************************************
     36/*
     37
    3738The following table complete the one in RFC 5777. The AVPs are implemented in the order of the table.
    3839We try to keep the structure of the grouped AVP by declaring the contained AVPs just before the grouped AVP they depend on.
     
    4748+++     QoS-Parameters                          576     5777    Grouped                 no specific AVPs? see RFC 5624
    4849+++     QoS-Profile-Template                    --------------------------------
    49 +++     Treatment-Action                        572     5777    Enumerated              Unclear, grouped or enum?
     50+++     Treatment-Action                        572     5777    Enumerated              Type is Enumerated. See Errata 2334 for RFC5777
    5051++      Excess-Treatment                        577     5777    Grouped
    5152++      QoS-Parameters                          --------------------------------
     
    6465+++     Time-Of-Day-End                         562     5777    Unsigned32
    6566+++     Time-Of-Day-Start                       561     5777    Unsigned32
    66 ++      Time-Of-Day-Condition                   560     5777    Grouped
     67++      Time-Of-Day-Condition                   560     5777    Grouped                 Some AVPs were omitted. See Errata 2333 for RFC5777
    6768+++++   High-User-Priority                      559     5777    Unsigned32
    6869+++++   Low-User-Priority                       558     5777    Unsigned32
     
    7879+++     ETH-Option                              548     5777    Grouped
    7980++++    Negated                                 517     5777    Enumerated
    80 ++++    ICMP-Code                               547     5777    Integer32               Changed from Enumerated. See AVP for details.
     81++++    ICMP-Code                               547     5777    Integer32               Changed from Enumerated for implementation reason. See AVP for details.
    8182++++    ICMP-Type-Number                        546     5777    Enumerated
    8283+++     ICMP-Type                               545     5777    Grouped
     
    99100++++    IP-Address-Range                        519     5777    Grouped
    100101+++++   IP-Address                              --------------------------------
    101 +++++   IP-Mask-Bit-Mask-Width                  523     5777    Unsigned32
     102+++++   IP-Mask-Bit-Mask-Width                  523     5777    Unsigned32              Name is IP-Mask-Bit-Mask-Width. See Errata 2335 for RFC5777
    102103++++    IP-Address-Mask                         522     5777    Grouped
    103104++++    MAC-Address                             524     5777    OctetString
     
    128129        QoS-Resources                           508     5777    Grouped
    129130
    130 ****************************/
     131*/
    131132
    132133
     
    151152
    152153/*
    153         NOTES TO SELF
    154 
    155         verifier si on a besoin de tout les defines
    156         - Que faut il faire pour la section 10.2 et 10.3?
    157         - La definition de Filter-Rule est chelou
    158         - La definition de QoS-Parameters est chelou
    159         - relire la rfc en entier
     154
     155NOTES
     156
     157Sections 10.2 and 10.3 of the RFC5777 have been ignored
    160158
    161159*/
     
    14501448                        http://www.iana.org/assignments/dscp-registry/dscp-registry.txt
    14511449
    1452                         Last updated : 2010-05-11
     1450                        Last updated in code : 2010-05-11
    14531451
    14541452                        */
    14551453                        struct dict_object      *       type;
    14561454                        struct dict_type_data           tdata = { AVP_TYPE_INTEGER32,   "Enumerated(Diffserv-Code-Point)"       , NULL, NULL, NULL };
    1457                         struct dict_enumval_data        t_000000 = { "CS0",             { .i32 = 0b000000 }};
    1458                         struct dict_enumval_data        t_001000 = { "CS1",             { .i32 = 0b001000 }};
    1459                         struct dict_enumval_data        t_010000 = { "CS2",             { .i32 = 0b010000 }};
    1460                         struct dict_enumval_data        t_011000 = { "CS3",             { .i32 = 0b011000 }};
    1461                         struct dict_enumval_data        t_100000 = { "CS4",             { .i32 = 0b100000 }};
    1462                         struct dict_enumval_data        t_101000 = { "CS5",             { .i32 = 0b101000 }};
    1463                         struct dict_enumval_data        t_110000 = { "CS6",             { .i32 = 0b110000 }};
    1464                         struct dict_enumval_data        t_111000 = { "CS7",             { .i32 = 0b111000 }};
    1465                         struct dict_enumval_data        t_001010 = { "AF11",            { .i32 = 0b001010 }};
    1466                         struct dict_enumval_data        t_001100 = { "AF12",            { .i32 = 0b001100 }};
    1467                         struct dict_enumval_data        t_001110 = { "AF13",            { .i32 = 0b001110 }};
    1468                         struct dict_enumval_data        t_010010 = { "AF21",            { .i32 = 0b010010 }};
    1469                         struct dict_enumval_data        t_010100 = { "AF22",            { .i32 = 0b010100 }};
    1470                         struct dict_enumval_data        t_010110 = { "AF23",            { .i32 = 0b010110 }};
    1471                         struct dict_enumval_data        t_011010 = { "AF31",            { .i32 = 0b011010 }};
    1472                         struct dict_enumval_data        t_011100 = { "AF32",            { .i32 = 0b011100 }};
    1473                         struct dict_enumval_data        t_011110 = { "AF33",            { .i32 = 0b011110 }};
    1474                         struct dict_enumval_data        t_100010 = { "AF41",            { .i32 = 0b100010 }};
    1475                         struct dict_enumval_data        t_100100 = { "AF42",            { .i32 = 0b100100 }};
    1476                         struct dict_enumval_data        t_100110 = { "AF43",            { .i32 = 0b100110 }};
    1477                         struct dict_enumval_data        t_101110 = { "EF PHB",          { .i32 = 0b101110 }};
    1478                         struct dict_enumval_data        t_101100 = { "VOICE-ADMIT",     { .i32 = 0b101100 }};
     1455                        struct dict_enumval_data        t_0  = { "CS0",         { .i32 = 0 }};
     1456                        struct dict_enumval_data        t_8  = { "CS1",         { .i32 = 8 }};
     1457                        struct dict_enumval_data        t_16 = { "CS2",         { .i32 = 16 }};
     1458                        struct dict_enumval_data        t_24 = { "CS3",         { .i32 = 24 }};
     1459                        struct dict_enumval_data        t_32 = { "CS4",         { .i32 = 32 }};
     1460                        struct dict_enumval_data        t_40 = { "CS5",         { .i32 = 40 }};
     1461                        struct dict_enumval_data        t_48 = { "CS6",         { .i32 = 48 }};
     1462                        struct dict_enumval_data        t_56 = { "CS7",         { .i32 = 56 }};
     1463                        struct dict_enumval_data        t_10 = { "AF11",        { .i32 = 10 }};
     1464                        struct dict_enumval_data        t_12 = { "AF12",        { .i32 = 12 }};
     1465                        struct dict_enumval_data        t_14 = { "AF13",        { .i32 = 14 }};
     1466                        struct dict_enumval_data        t_18 = { "AF21",        { .i32 = 18 }};
     1467                        struct dict_enumval_data        t_20 = { "AF22",        { .i32 = 20 }};
     1468                        struct dict_enumval_data        t_22 = { "AF23",        { .i32 = 22 }};
     1469                        struct dict_enumval_data        t_26 = { "AF31",        { .i32 = 26 }};
     1470                        struct dict_enumval_data        t_28 = { "AF32",        { .i32 = 28 }};
     1471                        struct dict_enumval_data        t_30 = { "AF33",        { .i32 = 30 }};
     1472                        struct dict_enumval_data        t_34 = { "AF41",        { .i32 = 34 }};
     1473                        struct dict_enumval_data        t_36 = { "AF42",        { .i32 = 36 }};
     1474                        struct dict_enumval_data        t_38 = { "AF43",        { .i32 = 38 }};
     1475                        struct dict_enumval_data        t_46 = { "EF PHB",      { .i32 = 46 }};
     1476                        struct dict_enumval_data        t_44 = { "VOICE-ADMIT", { .i32 = 44 }};
    14791477
    14801478                        struct dict_avp_data    data = {
     
    14881486                        /* Create the Enumerated type, and then the AVP */
    14891487                        CHECK_dict_new( DICT_TYPE, &tdata , NULL, &type);
    1490                         CHECK_dict_new( DICT_ENUMVAL, &t_000000 , type, NULL);
    1491                         CHECK_dict_new( DICT_ENUMVAL, &t_001000 , type, NULL);
    1492                         CHECK_dict_new( DICT_ENUMVAL, &t_010000 , type, NULL);
    1493                         CHECK_dict_new( DICT_ENUMVAL, &t_011000 , type, NULL);
    1494                         CHECK_dict_new( DICT_ENUMVAL, &t_100000 , type, NULL);
    1495                         CHECK_dict_new( DICT_ENUMVAL, &t_101000 , type, NULL);
    1496                         CHECK_dict_new( DICT_ENUMVAL, &t_110000 , type, NULL);
    1497                         CHECK_dict_new( DICT_ENUMVAL, &t_111000 , type, NULL);
    1498                         CHECK_dict_new( DICT_ENUMVAL, &t_001010 , type, NULL);
    1499                         CHECK_dict_new( DICT_ENUMVAL, &t_001100 , type, NULL);
    1500                         CHECK_dict_new( DICT_ENUMVAL, &t_001110 , type, NULL);
    1501                         CHECK_dict_new( DICT_ENUMVAL, &t_010010 , type, NULL);
    1502                         CHECK_dict_new( DICT_ENUMVAL, &t_010100 , type, NULL);
    1503                         CHECK_dict_new( DICT_ENUMVAL, &t_010110 , type, NULL);
    1504                         CHECK_dict_new( DICT_ENUMVAL, &t_011010 , type, NULL);
    1505                         CHECK_dict_new( DICT_ENUMVAL, &t_011100 , type, NULL);
    1506                         CHECK_dict_new( DICT_ENUMVAL, &t_011110 , type, NULL);
    1507                         CHECK_dict_new( DICT_ENUMVAL, &t_100010 , type, NULL);
    1508                         CHECK_dict_new( DICT_ENUMVAL, &t_100100 , type, NULL);
    1509                         CHECK_dict_new( DICT_ENUMVAL, &t_100110 , type, NULL);
    1510                         CHECK_dict_new( DICT_ENUMVAL, &t_101110 , type, NULL);
    1511                         CHECK_dict_new( DICT_ENUMVAL, &t_101100 , type, NULL);
     1488                        CHECK_dict_new( DICT_ENUMVAL, &t_0  , type, NULL);
     1489                        CHECK_dict_new( DICT_ENUMVAL, &t_8 , type, NULL);
     1490                        CHECK_dict_new( DICT_ENUMVAL, &t_16 , type, NULL);
     1491                        CHECK_dict_new( DICT_ENUMVAL, &t_24 , type, NULL);
     1492                        CHECK_dict_new( DICT_ENUMVAL, &t_32 , type, NULL);
     1493                        CHECK_dict_new( DICT_ENUMVAL, &t_40 , type, NULL);
     1494                        CHECK_dict_new( DICT_ENUMVAL, &t_48 , type, NULL);
     1495                        CHECK_dict_new( DICT_ENUMVAL, &t_56 , type, NULL);
     1496                        CHECK_dict_new( DICT_ENUMVAL, &t_10 , type, NULL);
     1497                        CHECK_dict_new( DICT_ENUMVAL, &t_12 , type, NULL);
     1498                        CHECK_dict_new( DICT_ENUMVAL, &t_14 , type, NULL);
     1499                        CHECK_dict_new( DICT_ENUMVAL, &t_18 , type, NULL);
     1500                        CHECK_dict_new( DICT_ENUMVAL, &t_20 , type, NULL);
     1501                        CHECK_dict_new( DICT_ENUMVAL, &t_22 , type, NULL);
     1502                        CHECK_dict_new( DICT_ENUMVAL, &t_26 , type, NULL);
     1503                        CHECK_dict_new( DICT_ENUMVAL, &t_28 , type, NULL);
     1504                        CHECK_dict_new( DICT_ENUMVAL, &t_30 , type, NULL);
     1505                        CHECK_dict_new( DICT_ENUMVAL, &t_34 , type, NULL);
     1506                        CHECK_dict_new( DICT_ENUMVAL, &t_36 , type, NULL);
     1507                        CHECK_dict_new( DICT_ENUMVAL, &t_38 , type, NULL);
     1508                        CHECK_dict_new( DICT_ENUMVAL, &t_46 , type, NULL);
     1509                        CHECK_dict_new( DICT_ENUMVAL, &t_44 , type, NULL);
    15121510                        CHECK_dict_new( DICT_AVP, &data , type, NULL);
    15131511                }
Note: See TracChangeset for help on using the changeset viewer.