Hi Redouane
Find some comments below.
2011/2/9 Soum, RedouaneX <[email protected]>
> The purpose of the patch is to handle Network Initiated Context Activation
> and PDN connection request as part of EPS Attach procedure (LTE) in oFono
> core.
>
> In order to avoid issue regarding CID allocation :
> - driver should call the core using ofono_gprs_set_cid_range function to
> specify CID range for UE initiated PDN connection
> - driver could use a new function to check if the CID is already used or
> not : ofono_gprs_is_cid_used, usefull in case the modem is not using a
> specific range for UE initiated PDN connection.
> - driver will use a new function to notify the gprs atom of a new PDN
> connection with all the ip parameters from AT+CGCONTRDP (I can provide an
> update later to handle PCSCF and IMS Signaling Flag as well) commmand :
> ofono_gprs_context_activated
>
> ofono_gprs_context_activated is similar to ofono_gprs_context_deactivated.
> This function must be call by any gprs driver when :
> - a context has been activated without explicit request as part of attach
> procedure in LTE (PDN ACT X and X is a unused CID)
> - a context has been activated by the Network (NW PDN ACT X, NW ACT X,Y)
>
> Behavior of the function :
>
> List all the context and try to find correct APN with empty username and
> empty password.
> If such context is not found then create a new one with "Internet" type
> only if we are in LTE with no Active context.
> Otherwise deactivate the connection.
>
> For the context (found or created):
> Update the settings
> Set to active
>
> The function will also assign the context to a context driver.
> ---
> include/gprs-context.h | 7 +++
> include/gprs.h | 3 +
> src/gprs.c | 139
> ++++++++++++++++++++++++++++++++++++++++++++++++
> src/idmap.c | 12 ++++
> src/idmap.h | 1 +
> 5 files changed, 162 insertions(+), 0 deletions(-)
>
> diff --git a/include/gprs-context.h b/include/gprs-context.h
> index c29c0dc..e208b66 100644
> --- a/include/gprs-context.h
> +++ b/include/gprs-context.h
> @@ -76,6 +76,13 @@ struct ofono_gprs_context_driver {
> ofono_gprs_context_cb_t cb, void
> *data);
> };
>
> +
> +void ofono_gprs_context_activated(struct ofono_gprs_context *gc,
> + const int cid, const char *apn,
> + const char *interface, ofono_bool_t static_ip,
> + const char *address, const char *netmask,
> + const char *gw, const char **dns);
> +
>
When this function is called we don't know *interface yet, as it is *gc
specific.
You look for a proper *gc_driver later on.
Maybe we should address found *gc_driver for a *interface?
Also looking at incoming IPv6 patches, maybe we should consider sending
connection data with separate functions?
<snip>
Br
Tomasz Gregorek
ST-Ericsson
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono