00001
00062 #include "sae.idl"
00063
00064 #pragma prefix ""
00065
00070 module sspPlugin {
00071
00078 enum PluginEventType {
00080 PE_AUTH_USER,
00081 PE_AUTH_SERVICE,
00082 PE_AUTH_SUBSCRIPTION,
00083
00085 PE_START_USER,
00086 PE_STOP_USER,
00087 PE_INTERIM_USER,
00088
00089 PE_START_SERVICE,
00090 PE_INTERIM_SERVICE,
00091 PE_STOP_SERVICE,
00092
00093
00094 PE_START_INTERFACE,
00095 PE_INTERIM_INTERFACE,
00096 PE_STOP_INTERFACE,
00097
00098
00099 PE_AUTH_DHCP,
00100
00101 PE_no_event
00102 };
00103
00121 enum PluginAttribute {
00122 PA_SSP_HOST,
00126 PA_ROUTER_NAME,
00130
00131 PA_INTERFACE_NAME,
00135
00136 PA_INTERFACE_ALIAS,
00140
00141 PA_INTERFACE_DESCR,
00145
00146 PA_PORT_ID,
00150
00151 PA_USER_IP_ADDRESS,
00155
00156 PA_LOGIN_NAME,
00161
00162 PA_ACCOUNTING_ID,
00166
00167 PA_AUTH_USER_ID,
00171
00172 PA_IF_RADIUS_CLASS,
00176
00177 PA_IF_SESSION_ID,
00181
00182 PA_SERVICE_BUNDLE,
00186
00187 PA_USER_DN,
00191
00192 PA_UID,
00196
00197 PA_DOMAIN,
00201
00202 PA_RETAILER_DN,
00206
00207 PA_PASSWORD,
00211
00212 PA_SERVICE_NAME,
00216
00217 PA_SERVICE_SCOPE,
00221
00222 PA_RADIUS_CLASS,
00226
00227 PA_EVENT_TIME,
00231
00233 PA_SESSION_ID,
00237
00238 PA_TERMINATE_CAUSE,
00242
00243 PA_SESSION_TIME,
00247
00248 PA_IN_OCTETS,
00252
00253 PA_OUT_OCTETS,
00257
00258 PA_IN_PACKETS,
00262
00263 PA_OUT_PACKETS,
00267
00268 PA_SESSION_TIMEOUT,
00272
00273 PA_NAS_IP,
00277
00278 PA_USER_MAC_ADDRESS,
00282
00283 PA_DOWNSTREAM_BANDWIDTH,
00287
00288 PA_UPSTREAM_BANDWIDTH,
00292
00294 PA_REPLY_MESSAGE,
00298
00299 PA_SERVICE_SESSION_NAME,
00303
00304 PA_SERVICE_SESSION_TAG,
00308
00309 PA_DHCP_PACKET,
00317
00318 PA_USER_TYPE,
00322
00323 PA_USER_RADIUS_CLASS,
00327
00328 PA_USER_SESSION_ID,
00332
00334 PA_PRIMARY_USER_NAME,
00338
00340 PA_SESSION_VOLUME_QUOTA,
00344
00345 PA_SUBSCRIPTION_NAME,
00349
00350 PA_LOAD_SERVICES,
00357
00359 PA_LOGIN_ID,
00363
00365 PA_POOL_NAME,
00370
00371 PA_AUTH_VIRTUAL_ROUTER_NAME,
00377
00378 PA_IF_INDEX,
00382
00384 PA_EVENT_TIME_MILLISECOND,
00388
00389
00390 PA_NAS_PORT,
00394
00395 PA_OPERATIONAL,
00399
00400 PA_IDLE_TIMEOUT,
00404
00406 PA_USER_INET_ADDRESS,
00412
00413 PA_NAS_INET_ADDRESS,
00420
00422 PA_AGGR_SESSION_ID,
00427
00428 PA_AGGR_LOGIN_NAME,
00432
00433 PA_AGGR_USER_DN,
00437
00438 PA_AGGR_USER_INET_ADDRESS,
00443
00444 PA_AGGR_ACCOUNTING_ID,
00448
00449 PA_AGGR_AUTH_USER_ID,
00453
00454
00455 PA_PROPERTY,
00462
00463
00464 PA_ACCT_INTERIM_TIME,
00470
00471
00472 PA_SUBSTITUTION,
00478
00479 PA_TERMINATE_TIME,
00497
00498 PA_ROUTER_TYPE,
00502
00503 PA_PCMM_REQUEST_TYPE,
00507
00508 PA_PCMM_AM_ID,
00512
00513 PA_PCMM_BC_ID,
00517
00518 PA_INTERFACE_SPEED,
00522
00523 PA_ACCESS_MODE,
00536
00537 PA_ACCESS_UPSTREAM_RATE,
00541
00542 PA_ACCESS_DOWNSTREAM_RATE,
00546
00547 PA_MIN_UPSTREAM_RATE,
00551
00552 PA_MIN_DOWNSTREAM_RATE,
00556
00557 PA_ATTAINABLE_UPSTREAM_RATE,
00561
00562 PA_ATTAINABLE_DOWNSTREAM_RATE,
00566
00567 PA_MAXIMUM_UPSTREAM_RATE,
00571
00572 PA_MAXIMUM_DOWNSTREAM_RATE,
00576
00577 PA_MINIMUM_LOW_POWER_UPSTREAM_RATE,
00581
00582 PA_MINIMUM_LOW_POWER_DOWNSTREAM_RATE,
00586
00587 PA_MAXIMUM_INTERLEAVING_UPSTREAM_DELAY,
00591
00592 PA_ACTUAL_INTERLEAVING_UPSTREAM_DELAY,
00596
00597 PA_MAXIMUM_INTERLEAVING_DOWNSTREAM_DELAY,
00601
00602 PA_ACTUAL_INTERLEAVING_DOWNSTREAM_DELAY,
00606
00607 PA_DSL_LINE_STAT,
00616
00617
00618
00619 PA_USER_SESSION_HANDLE,
00623
00625 PA_TUNNEL_ID,
00629
00630 PA_TUNNEL_SESSION_ID,
00634
00635 PA_LAC_IP,
00639
00640 PA_CALLING_STATION_ID,
00644
00645 PA_USER_PROPERTY,
00651
00652 PA_VPN_ID,
00656
00657
00658 PA_LOCAL_QOS_PROFILE,
00664 PA_IDLE_TIMEOUT_INPUT,
00668
00669 PA_IDLE_TIMEOUT_OUTPUT,
00673
00674 PA_REMOTE_TUNNEL_INET_ADDRESS,
00681
00682 PA_LOCAL_TUNNEL_INET_ADDRESS,
00689
00690 PA_USER_IP_MASK,
00694
00695 PA_FRAMED_IPV6_PREFIX,
00702
00703 PA_DELEGATED_IPV6_PREFIX,
00711
00712
00713 PA_SERVICE_IDENTIFIER,
00717
00718 PA_EVENT_TRIGGER,
00721
00722 PA_TDF_APP_ID,
00725
00726 PA_TDF_APP_INSTANCE_ID,
00729
00730 PA_RATING_GROUP,
00733
00734 PA_TOTAL_OCTETS,
00738
00739 PA_IPV6_IN_OCTETS,
00743
00744 PA_IPV6_OUT_OCTETS,
00748
00749 PA_IPV6_IN_PACKETS,
00753
00754 PA_IPV6_OUT_PACKETS,
00758
00759 PA_IPV6_TOTAL_OCTETS,
00763
00764
00765 PA_last
00766 };
00767
00769 enum PluginAttributeType {
00770 PAT_LONG,
00771 PAT_LONG_LONG,
00772 PAT_STRING,
00773 PAT_OPAQUE
00774 };
00775
00779 union AttributeUnion switch (PluginAttributeType) {
00780 case PAT_LONG:
00781 long longVal;
00782 case PAT_LONG_LONG:
00783 long long longLongVal;
00784 case PAT_STRING:
00785 string stringVal;
00786 case PAT_OPAQUE:
00787 sequence<octet> opaqueVal;
00788 };
00796 struct NameValue {
00797 PluginAttribute name;
00798 AttributeUnion value;
00799 };
00801 typedef sequence<NameValue> NameValueList;
00802
00811 struct SubscriptionInfo {
00812 long sessionTimeout;
00813
00814 long interimTime;
00815
00816 };
00817
00821 struct DirectoryAccessInfo {
00822 sequence<string> ldapHost;
00823 string baseDN;
00824 };
00825
00837 interface PluginContext {
00838 DirectoryAccessInfo getServiceDirectory();
00839 DirectoryAccessInfo getUserDirectory();
00840 sae::ServiceActivationEngine getSAE();
00841 };
00842
00857 interface PluginInterface {
00859 exception MethodNotImplemented {};
00860
00862 exception AuthorizationDenied {
00863 string message;
00864
00865 };
00866 #ifndef NO_WSTRING
00868 exception AuthorizationDeniedW {
00869 wstring message;
00870
00871 };
00872 #endif
00873
00880 exception OutOfSync {};
00881
00903 NameValueList authorize(in PluginEventType pet,
00904 in PluginContext ctx,
00905 in NameValueList attr)
00906 raises (MethodNotImplemented,
00907 #ifndef NO_WSTRING
00908 AuthorizationDeniedW,
00909 #endif
00910 AuthorizationDenied,
00911 OutOfSync
00912 );
00913
00930 void track (in PluginEventType pet,
00931 in PluginContext ctx,
00932 in NameValueList nvl,
00933 inout SubscriptionInfo subscription)
00934 raises (MethodNotImplemented,
00935 OutOfSync);
00936 };
00937
00947 interface SyncPluginInterface: PluginInterface {
00953 void restart(in string pepId);
00954
00964 void restartComplete(in string pepId, in boolean isPepReset)
00965 raises (OutOfSync);
00966
00972 void stop(in string pepId);
00973 };
00974
00986 interface StateSyncPlugin: SyncPluginInterface {
00987
00994 typedef sequence<string> StringSeq;
00995
01009 long readyToSync(in StringSeq pepIds,
01010 in boolean queueValid);
01011
01015 struct PluginEvent {
01016 PluginEventType pet;
01017 NameValueList nvl;
01018 };
01019
01023 typedef sequence<PluginEvent> PluginEventSeq;
01024
01030 void trackBulk(in PluginEventSeq events)
01031 raises (OutOfSync);
01032
01040 void syncComplete(in StringSeq pepIds);
01041
01048 void ping(in StringSeq pepIds) raises(OutOfSync);
01049
01050 };
01051
01052 };