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
00269 PA_SESSION_TIMEOUT,
00273
00274 PA_NAS_IP,
00278
00279 PA_USER_MAC_ADDRESS,
00283
00284 PA_DOWNSTREAM_BANDWIDTH,
00288
00289 PA_UPSTREAM_BANDWIDTH,
00293
00295 PA_REPLY_MESSAGE,
00299
00300 PA_SERVICE_SESSION_NAME,
00304
00305 PA_SERVICE_SESSION_TAG,
00309
00310 PA_DHCP_PACKET,
00318
00319 PA_USER_TYPE,
00323
00324 PA_USER_RADIUS_CLASS,
00328
00329 PA_USER_SESSION_ID,
00333
00335 PA_PRIMARY_USER_NAME,
00339
00341 PA_SESSION_VOLUME_QUOTA,
00345
00346 PA_SUBSCRIPTION_NAME,
00350
00351 PA_LOAD_SERVICES,
00358
00360 PA_LOGIN_ID,
00364
00366 PA_POOL_NAME,
00371
00372 PA_AUTH_VIRTUAL_ROUTER_NAME,
00378
00379 PA_IF_INDEX,
00383
00385 PA_EVENT_TIME_MILLISECOND,
00389
00390
00391 PA_NAS_PORT,
00395
00396 PA_OPERATIONAL,
00400
00401 PA_IDLE_TIMEOUT,
00405
00407 PA_USER_INET_ADDRESS,
00413
00414 PA_NAS_INET_ADDRESS,
00421
00423 PA_AGGR_SESSION_ID,
00428
00429 PA_AGGR_LOGIN_NAME,
00433
00434 PA_AGGR_USER_DN,
00438
00439 PA_AGGR_USER_INET_ADDRESS,
00444
00445 PA_AGGR_ACCOUNTING_ID,
00449
00450 PA_AGGR_AUTH_USER_ID,
00454
00455
00456 PA_PROPERTY,
00463
00464
00465 PA_ACCT_INTERIM_TIME,
00471
00472
00473 PA_SUBSTITUTION,
00479
00480 PA_TERMINATE_TIME,
00498
00499 PA_ROUTER_TYPE,
00503
00504 PA_PCMM_REQUEST_TYPE,
00508
00509 PA_PCMM_AM_ID,
00513
00514 PA_PCMM_BC_ID,
00518
00519 PA_INTERFACE_SPEED,
00523
00524 PA_ACCESS_MODE,
00537
00538 PA_ACCESS_UPSTREAM_RATE,
00542
00543 PA_ACCESS_DOWNSTREAM_RATE,
00547
00548 PA_MIN_UPSTREAM_RATE,
00552
00553 PA_MIN_DOWNSTREAM_RATE,
00557
00558 PA_ATTAINABLE_UPSTREAM_RATE,
00562
00563 PA_ATTAINABLE_DOWNSTREAM_RATE,
00567
00568 PA_MAXIMUM_UPSTREAM_RATE,
00572
00573 PA_MAXIMUM_DOWNSTREAM_RATE,
00577
00578 PA_MINIMUM_LOW_POWER_UPSTREAM_RATE,
00582
00583 PA_MINIMUM_LOW_POWER_DOWNSTREAM_RATE,
00587
00588 PA_MAXIMUM_INTERLEAVING_UPSTREAM_DELAY,
00592
00593 PA_ACTUAL_INTERLEAVING_UPSTREAM_DELAY,
00597
00598 PA_MAXIMUM_INTERLEAVING_DOWNSTREAM_DELAY,
00602
00603 PA_ACTUAL_INTERLEAVING_DOWNSTREAM_DELAY,
00607
00608 PA_DSL_LINE_STAT,
00617
00618
00619
00620 PA_USER_SESSION_HANDLE,
00624
00626 PA_TUNNEL_ID,
00630
00631 PA_TUNNEL_SESSION_ID,
00635
00636 PA_LAC_IP,
00640
00641 PA_CALLING_STATION_ID,
00645
00646 PA_USER_PROPERTY,
00652
00653 PA_VPN_ID,
00657
00658
00659 PA_LOCAL_QOS_PROFILE,
00665 PA_IDLE_TIMEOUT_INPUT,
00669
00670 PA_IDLE_TIMEOUT_OUTPUT,
00674
00675 PA_REMOTE_TUNNEL_INET_ADDRESS,
00682
00683 PA_LOCAL_TUNNEL_INET_ADDRESS,
00690
00691 PA_USER_IP_MASK,
00695
00696 PA_FRAMED_IPV6_PREFIX,
00703
00704 PA_DELEGATED_IPV6_PREFIX,
00712
00713
00714 PA_last
00715 };
00716
00718 enum PluginAttributeType {
00719 PAT_LONG,
00720 PAT_LONG_LONG,
00721 PAT_STRING,
00722 PAT_OPAQUE
00723 };
00724
00728 union AttributeUnion switch (PluginAttributeType) {
00729 case PAT_LONG:
00730 long longVal;
00731 case PAT_LONG_LONG:
00732 long long longLongVal;
00733 case PAT_STRING:
00734 string stringVal;
00735 case PAT_OPAQUE:
00736 sequence<octet> opaqueVal;
00737 };
00745 struct NameValue {
00746 PluginAttribute name;
00747 AttributeUnion value;
00748 };
00750 typedef sequence<NameValue> NameValueList;
00751
00760 struct SubscriptionInfo {
00761 long sessionTimeout;
00762
00763 long interimTime;
00764
00765 };
00766
00770 struct DirectoryAccessInfo {
00771 sequence<string> ldapHost;
00772 string baseDN;
00773 };
00774
00786 interface PluginContext {
00787 DirectoryAccessInfo getServiceDirectory();
00788 DirectoryAccessInfo getUserDirectory();
00789 sae::ServiceActivationEngine getSAE();
00790 };
00791
00806 interface PluginInterface {
00808 exception MethodNotImplemented {};
00809
00811 exception AuthorizationDenied {
00812 string message;
00813
00814 };
00815 #ifndef NO_WSTRING
00817 exception AuthorizationDeniedW {
00818 wstring message;
00819
00820 };
00821 #endif
00822
00829 exception OutOfSync {};
00830
00852 NameValueList authorize(in PluginEventType pet,
00853 in PluginContext ctx,
00854 in NameValueList attr)
00855 raises (MethodNotImplemented,
00856 #ifndef NO_WSTRING
00857 AuthorizationDeniedW,
00858 #endif
00859 AuthorizationDenied,
00860 OutOfSync
00861 );
00862
00879 void track (in PluginEventType pet,
00880 in PluginContext ctx,
00881 in NameValueList nvl,
00882 inout SubscriptionInfo subscription)
00883 raises (MethodNotImplemented,
00884 OutOfSync);
00885 };
00886
00896 interface SyncPluginInterface: PluginInterface {
00902 void restart(in string pepId);
00903
00913 void restartComplete(in string pepId, in boolean isPepReset)
00914 raises (OutOfSync);
00915
00921 void stop(in string pepId);
00922 };
00923
00935 interface StateSyncPlugin: SyncPluginInterface {
00936
00943 typedef sequence<string> StringSeq;
00944
00958 long readyToSync(in StringSeq pepIds,
00959 in boolean queueValid);
00960
00964 struct PluginEvent {
00965 PluginEventType pet;
00966 NameValueList nvl;
00967 };
00968
00972 typedef sequence<PluginEvent> PluginEventSeq;
00973
00979 void trackBulk(in PluginEventSeq events)
00980 raises (OutOfSync);
00981
00989 void syncComplete(in StringSeq pepIds);
00990
00997 void ping(in StringSeq pepIds) raises(OutOfSync);
00998
00999 };
01000
01001 };