Netdev List
 help / color / mirror / Atom feed
* [PATCH 3/7] ipsec: Don't update the pmtu on ICMPV6_DEST_UNREACH
From: Steffen Klassert @ 2013-10-09 10:59 UTC (permalink / raw)
  To: David Miller; +Cc: Herbert Xu, Steffen Klassert, netdev
In-Reply-To: <1381316351-14418-1-git-send-email-steffen.klassert@secunet.com>

Currently we update the pmtu in the IPsec protocol error handlers
if icmpv6 message type is either ICMPV6_DEST_UNREACH or
ICMPV6_PKT_TOOBIG. Updating the pmtu on ICMPV6_DEST_UNREACH
is wrong in any case, it causes strangely fragmented packets.
Only ICMPV6_PKT_TOOBIG signalizes pmtu discovery, so remove the
ICMPV6_DEST_UNREACH check in the IPsec protocol error handlers.

Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
---
 net/ipv6/ah6.c     |    3 +--
 net/ipv6/esp6.c    |    3 +--
 net/ipv6/ipcomp6.c |    3 +--
 3 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/net/ipv6/ah6.c b/net/ipv6/ah6.c
index 73784c3..82e1da3 100644
--- a/net/ipv6/ah6.c
+++ b/net/ipv6/ah6.c
@@ -618,8 +618,7 @@ static void ah6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
 	struct ip_auth_hdr *ah = (struct ip_auth_hdr*)(skb->data+offset);
 	struct xfrm_state *x;
 
-	if (type != ICMPV6_DEST_UNREACH &&
-	    type != ICMPV6_PKT_TOOBIG &&
+	if (type != ICMPV6_PKT_TOOBIG &&
 	    type != NDISC_REDIRECT)
 		return;
 
diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c
index d3618a7..e67e63f 100644
--- a/net/ipv6/esp6.c
+++ b/net/ipv6/esp6.c
@@ -436,8 +436,7 @@ static void esp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
 	struct ip_esp_hdr *esph = (struct ip_esp_hdr *)(skb->data + offset);
 	struct xfrm_state *x;
 
-	if (type != ICMPV6_DEST_UNREACH &&
-	    type != ICMPV6_PKT_TOOBIG &&
+	if (type != ICMPV6_PKT_TOOBIG &&
 	    type != NDISC_REDIRECT)
 		return;
 
diff --git a/net/ipv6/ipcomp6.c b/net/ipv6/ipcomp6.c
index 5636a91..ce507d9 100644
--- a/net/ipv6/ipcomp6.c
+++ b/net/ipv6/ipcomp6.c
@@ -64,8 +64,7 @@ static void ipcomp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
 		(struct ip_comp_hdr *)(skb->data + offset);
 	struct xfrm_state *x;
 
-	if (type != ICMPV6_DEST_UNREACH &&
-	    type != ICMPV6_PKT_TOOBIG &&
+	if (type != ICMPV6_PKT_TOOBIG &&
 	    type != NDISC_REDIRECT)
 		return;
 
-- 
1.7.9.5

^ permalink raw reply related

* [PATCH 1/7] xfrm: Fix replay size checking on async events
From: Steffen Klassert @ 2013-10-09 10:59 UTC (permalink / raw)
  To: David Miller; +Cc: Herbert Xu, Steffen Klassert, netdev
In-Reply-To: <1381316351-14418-1-git-send-email-steffen.klassert@secunet.com>

We pass the wrong netlink attribute to xfrm_replay_verify_len().
It should be XFRMA_REPLAY_ESN_VAL and not XFRMA_REPLAY_VAL as
we currently doing. This causes memory corruptions if the
replay esn attribute has incorrect length. Fix this by passing
the right attribute to xfrm_replay_verify_len().

Reported-by: Michael Rossberg <michael.rossberg@tu-ilmenau.de>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
---
 net/xfrm/xfrm_user.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
index 3f565e4..4b26cee 100644
--- a/net/xfrm/xfrm_user.c
+++ b/net/xfrm/xfrm_user.c
@@ -1856,7 +1856,7 @@ static int xfrm_new_ae(struct sk_buff *skb, struct nlmsghdr *nlh,
 	if (x->km.state != XFRM_STATE_VALID)
 		goto out;
 
-	err = xfrm_replay_verify_len(x->replay_esn, rp);
+	err = xfrm_replay_verify_len(x->replay_esn, re);
 	if (err)
 		goto out;
 
-- 
1.7.9.5

^ permalink raw reply related

* [PATCH 2/7] xfrm: Decode sessions with output interface.
From: Steffen Klassert @ 2013-10-09 10:59 UTC (permalink / raw)
  To: David Miller; +Cc: Herbert Xu, Steffen Klassert, netdev
In-Reply-To: <1381316351-14418-1-git-send-email-steffen.klassert@secunet.com>

The output interface matching does not work on forward
policy lookups, the output interface of the flowi is
always 0. Fix this by setting the output interface when
we decode the session.

Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
---
 net/ipv4/xfrm4_policy.c |    1 +
 net/ipv6/xfrm6_policy.c |    1 +
 2 files changed, 2 insertions(+)

diff --git a/net/ipv4/xfrm4_policy.c b/net/ipv4/xfrm4_policy.c
index 9a459be..ccde542 100644
--- a/net/ipv4/xfrm4_policy.c
+++ b/net/ipv4/xfrm4_policy.c
@@ -107,6 +107,7 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl, int reverse)
 
 	memset(fl4, 0, sizeof(struct flowi4));
 	fl4->flowi4_mark = skb->mark;
+	fl4->flowi4_oif = skb_dst(skb)->dev->ifindex;
 
 	if (!ip_is_fragment(iph)) {
 		switch (iph->protocol) {
diff --git a/net/ipv6/xfrm6_policy.c b/net/ipv6/xfrm6_policy.c
index 23ed03d..08ed277 100644
--- a/net/ipv6/xfrm6_policy.c
+++ b/net/ipv6/xfrm6_policy.c
@@ -138,6 +138,7 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse)
 
 	memset(fl6, 0, sizeof(struct flowi6));
 	fl6->flowi6_mark = skb->mark;
+	fl6->flowi6_oif = skb_dst(skb)->dev->ifindex;
 
 	fl6->daddr = reverse ? hdr->saddr : hdr->daddr;
 	fl6->saddr = reverse ? hdr->daddr : hdr->saddr;
-- 
1.7.9.5

^ permalink raw reply related

* pull request (net): ipsec 2013-10-09
From: Steffen Klassert @ 2013-10-09 10:59 UTC (permalink / raw)
  To: David Miller; +Cc: Herbert Xu, Steffen Klassert, netdev

1) We used the wrong netlink attribute to verify the
   lenght of the replay window on async events. Fix this by
   using the right netlink attribute.

2) Policy lookups can not match the output interface on forwarding.
   Add the needed informations to the flow informations.

3) We update the pmtu when we receive a ICMPV6_DEST_UNREACH message
   on IPsec with ipv6. This is wrong and leads to strange fragmented
   packets, only ICMPV6_PKT_TOOBIG messages should update the pmtu.
   Fix this by removing the ICMPV6_DEST_UNREACH check from the IPsec
   protocol error handlers.

4) The legacy IPsec anti replay mechanism supports anti replay
   windows up to 32 packets. If a user requests for a bigger
   anti replay window, we use 32 packets but pretend that we use
   the requested window size. Fix from Fan Du.

5) If asynchronous events are enabled and replay_maxdiff is set to
   zero, we generate an async event for every received packet instead
   of checking whether a timeout occurred. Fix from Thomas Egerer.

6) Policies need a refcount when the state resolution timer is armed.
   Otherwise the timer can fire after the policy is deleted.

7) We might dreference a NULL pointer if the hold_queue is empty,
   add a check to avoid this.

Please pull or let me know if there are problems.

Thanks!

The following changes since commit 73a695f8572e4c46a2aecdbb63f26f36a43e6873:

  cxgb4: remove workqueue when driver registration fails (2013-09-15 22:28:58 -0400)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec.git master

for you to fetch changes up to 2bb53e2557964c2c5368a0392cf3b3b63a288cd0:

  xfrm: check for a vaild skb in xfrm_policy_queue_process (2013-10-08 10:49:51 +0200)

----------------------------------------------------------------
Fan Du (1):
      xfrm: Guard IPsec anti replay window against replay bitmap

Steffen Klassert (5):
      xfrm: Fix replay size checking on async events
      xfrm: Decode sessions with output interface.
      ipsec: Don't update the pmtu on ICMPV6_DEST_UNREACH
      xfrm: Add refcount handling to queued policies
      xfrm: check for a vaild skb in xfrm_policy_queue_process

Thomas Egerer (1):
      xfrm: Fix aevent generation for each received packet

 net/ipv4/xfrm4_policy.c |    1 +
 net/ipv6/ah6.c          |    3 +--
 net/ipv6/esp6.c         |    3 +--
 net/ipv6/ipcomp6.c      |    3 +--
 net/ipv6/xfrm6_policy.c |    1 +
 net/key/af_key.c        |    3 ++-
 net/xfrm/xfrm_policy.c  |   28 ++++++++++++++++++------
 net/xfrm/xfrm_replay.c  |   54 ++++++++++++++++++++++++-----------------------
 net/xfrm/xfrm_user.c    |    5 +++--
 9 files changed, 59 insertions(+), 42 deletions(-)

^ permalink raw reply

* Re: MBIM device refusing to be enabled
From: Bjørn Mork @ 2013-10-09 10:29 UTC (permalink / raw)
  To: Oliver Neukum; +Cc: Dan Williams, netdev
In-Reply-To: <871u3u21zz.fsf@nemi.mork.no>

Bjørn Mork <bjorn@mork.no> writes:

> Oliver Neukum <oliver@neukum.org> writes:
>
>> I have a device which the kernel and MM (1.0) identify as MBIM.
>> I can transfer the PIN, but the device refuses to be enabled.
>> Any idea?
>
> [..]
>
>> 2013-10-09T10:49:49.930237+02:00 linux-3m4i ModemManager[566]:
>> [/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>>   length =
>> 56#012>>>>>>   data   =
>> 03:00:00:80:38:00:00:00:13:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:03:00:00:00:00:00:00:00:08:00:00:00:01:00:00:00:00:00:00:00
>> 2013-10-09T10:49:49.930545+02:00 linux-3m4i ModemManager[566]:
>> [/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
>> Header:#012>>>>>>   length      = 56#012>>>>>>   type        =
>> command-done (0x80000003)#012>>>>>>   transaction = 19#012>>>>>>
>> Fragment header:#012>>>>>>   total   = 1#012>>>>>>   current =
>> 0#012>>>>>> Contents:#012>>>>>>   status error =
>> 'None' (0x00000000)#012>>>>>>   service      =
>> 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>>   cid
>> = 'radio-state' (0x00000003)
>
> It's a bit difficult to read these logs, but decoding the raw data
> results in:
>
> MBIM_MESSAGE_HEADER
>   MessageType:  0x80000003 (MBIM_COMMAND_DONE)
>   MessageLength:        56
>   TransactionId:        19
> MBIM_FRAGMENT_HEADER
>   TotalFragments:       0x00000001
>   CurrentFragment:      0x00000000
> BASIC_CONNECT (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)
> MBIM_CID_RADIO_STATE (3)
> MBIM_STATUS_SUCCESS (0)
> InformationBuffer [8]:
>   HwRadioState: on
>   SwRadioState: off
>
> Which either means that the radio is disabled using rfkill, or that
> there is a problem with the platform rfkill driver for your laptop.
> In any case, this is the reason you cannot enable the modem.
>
> Does "rfkill list" confirm that the radio is disabled?  Can you change
> it?

Sorry, that was nonsense.  rfkill would only affect the HwRadioState.

Looking at the commands following this message, it appears that MM
correctly attempts to enable the SwRadioState but fails.  I don't know
why.


Bjørn

^ permalink raw reply

* RE: [Xen-devel] [PATCH net-next v2 5/5] xen-netback: enable IPv6 TCP GSO to the guest
From: Paul Durrant @ 2013-10-09 10:26 UTC (permalink / raw)
  To: annie li
  Cc: xen-devel@lists.xen.org, netdev@vger.kernel.org, Wei Liu,
	David Vrabel, Ian Campbell
In-Reply-To: <5254DE88.90808@oracle.com>

> -----Original Message-----
> From: annie li [mailto:annie.li@oracle.com]
> Sent: 09 October 2013 05:42
> To: Paul Durrant
> Cc: xen-devel@lists.xen.org; netdev@vger.kernel.org; Wei Liu; David Vrabel;
> Ian Campbell
> Subject: Re: [Xen-devel] [PATCH net-next v2 5/5] xen-netback: enable IPv6
> TCP GSO to the guest
> 
> 
> On 2013-10-8 18:58, Paul Durrant wrote:
> > This patch adds code to handle SKB_GSO_TCPV6 skbs and construct
> appropriate
> > extra or prefix segments to pass the large packet to the frontend. New
> > xenstore flags, feature-gso-tcpv6 and feature-gso-tcpv6-prefix, are
> sampled
> > to determine if the frontend is capable of handling such packets.
> >
> > Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
> > Cc: Wei Liu <wei.liu2@citrix.com>
> > Cc: David Vrabel <david.vrabel@citrix.com>
> > Cc: Ian Campbell <ian.campbell@citrix.com>
> > ---
> >   drivers/net/xen-netback/common.h    |    6 +++--
> >   drivers/net/xen-netback/interface.c |    8 ++++--
> >   drivers/net/xen-netback/netback.c   |   47
> +++++++++++++++++++++++++++--------
> >   drivers/net/xen-netback/xenbus.c    |   29 +++++++++++++++++++--
> >   4 files changed, 74 insertions(+), 16 deletions(-)
> >
> > diff --git a/drivers/net/xen-netback/common.h b/drivers/net/xen-
> netback/common.h
> > index b4a9a3c..720b1ca 100644
> > --- a/drivers/net/xen-netback/common.h
> > +++ b/drivers/net/xen-netback/common.h
> > @@ -87,6 +87,7 @@ struct pending_tx_info {
> >   struct xenvif_rx_meta {
> >   	int id;
> >   	int size;
> > +	int gso_type;
> >   	int gso_size;
> >   };
> >
> > @@ -150,9 +151,10 @@ struct xenvif {
> >   	u8               fe_dev_addr[6];
> >
> >   	/* Frontend feature information. */
> > +	int gso_mask;
> > +	int gso_prefix_mask;
> I assume it is a flag instead of mask here, right? If it is mask, then 1
> means disabling the gso.

I don't understand what you're saying here. I'm just swapping from bit flags to a couple of masks. Masks without either of the requisite bits for v4 or v6 gso mean it is disabled.

> > +
> >   	u8 can_sg:1;
> > -	u8 gso:1;
> > -	u8 gso_prefix:1;
> >   	u8 ip_csum:1;
> >   	u8 ipv6_csum:1;
> >
> > diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-
> netback/interface.c
> > index cb0d8ea..3d11387 100644
> > --- a/drivers/net/xen-netback/interface.c
> > +++ b/drivers/net/xen-netback/interface.c
> > @@ -214,8 +214,12 @@ static netdev_features_t
> xenvif_fix_features(struct net_device *dev,
> >
> >   	if (!vif->can_sg)
> >   		features &= ~NETIF_F_SG;
> > -	if (!vif->gso && !vif->gso_prefix)
> > +	if (~(vif->gso_mask | vif->gso_prefix_mask) &
> > +	    (1 << XEN_NETIF_GSO_TYPE_TCPV4))
> 
> Is it better to use XEN_NETIF_GSO_TYPE_TCPV4 directly and setting
> gso_mask(gso_prefix_mask) with "|= XEN_NETIF_GSO_TYPE_TCPV4" or "|=
> XEN_NETIF_GSO_TYPE_TCPV6" instead of "1 <<"?
> 

I thought about it but decided it was best to leave XEN_NETIF_GSO_TYPE_xxx as a list of types rather than bits in a mask as there's no intrinsic reason why you'd ever want to OR them together (unlike the tx or rx flags). That fact I use them as bit shifts in netback is purely for convenience of coding - I guess I could define macros to make it a little tidier though.

  Paul

^ permalink raw reply

* BUG in net/l2tp/l2tp_core.c
From: François Cachereul @ 2013-10-09 10:11 UTC (permalink / raw)
  To: James Chapman, David S. Miller; +Cc: netdev

Hi,

I got the following BUG when using l2tp modules with smp kernel.
I noticed that l2tp_xmit_skb uses bh_lock_sock/bh_unlok_sock which doesn't seem to be correct because it does a lot of stuff and probably sleep before releasing the lock. I try replacing bh_lock_sock/bh_unlock_sock with lock_sock/release_sock and the BUG doesn't happened anymore. Is it correct ?

Regards
François



[  452.060011] BUG: soft lockup - CPU#1 stuck for 23s! [accel-pppd:6662]
[  452.061757] Modules linked in: l2tp_ppp l2tp_netlink l2tp_core pppoe pppox ppp_generic slhc ipv6 ext3 mbcache jbd virtio_balloon xfs exportfs dm_mod virtio_blk ata_generic virtio_net floppy ata_piix libata virtio_pci virtio_ring virtio [last unloaded: scsi_wait_scan]
[  452.064012] CPU 1
[  452.064012] Modules linked in: l2tp_ppp l2tp_netlink l2tp_core pppoe pppox ppp_generic slhc ipv6 ext3 mbcache jbd virtio_balloon xfs exportfs dm_mod virtio_blk ata_generic virtio_net floppy ata_piix libata virtio_pci
[  452.080015] BUG: soft lockup - CPU#2 stuck for 23s! [accel-pppd:6643]
[  452.080015] Modules linked in: l2tp_ppp l2tp_netlink l2tp_core pppoe pppox ppp_generic slhc ipv6 ext3 mbcache jbd virtio_balloon xfs exportfs dm_mod virtio_blk ata_generic virtio_net floppy ata_piix libata virtio_pci virtio_ring virtio [last unloaded: scsi_wait_scan]
[  452.080015] CPU 2
[  452.080015] Modules linked in: l2tp_ppp l2tp_netlink l2tp_core pppoe pppox ppp_generic slhc ipv6 ext3 mbcache jbd virtio_balloon xfs exportfs dm_mod virtio_blk ata_generic virtio_net floppy ata_piix libata virtio_pci virtio_ring virtio [last unloaded: scsi_wait_scan]
[  452.080015]
[  452.080015] Pid: 6643, comm: accel-pppd Not tainted 3.2.46.mini #1 Bochs Bochs
[  452.080015] RIP: 0010:[<ffffffff81059f6c>]  [<ffffffff81059f6c>] do_raw_spin_lock+0x17/0x1f
[  452.080015] RSP: 0018:ffff88007125fc18  EFLAGS: 00000293
[  452.080015] RAX: 000000000000aba9 RBX: ffffffff811d0703 RCX: 0000000000000000
[  452.080015] RDX: 00000000000000ab RSI: ffff8800711f6896 RDI: ffff8800745c8110
[  452.080015] RBP: ffff88007125fc18 R08: 0000000000000020 R09: 0000000000000000
[  452.080015] R10: 0000000000000000 R11: 0000000000000280 R12: 0000000000000286
[  452.080015] R13: 0000000000000020 R14: 0000000000000240 R15: 0000000000000000
[  452.080015] FS:  00007fdc0cc24700(0000) GS:ffff8800b6f00000(0000) knlGS:0000000000000000
[  452.080015] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  452.080015] CR2: 00007fdb054899b8 CR3: 0000000074404000 CR4: 00000000000006a0
[  452.080015] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  452.080015] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[  452.080015] Process accel-pppd (pid: 6643, threadinfo ffff88007125e000, task ffff8800b27e6dd0)
[  452.080015] Stack:
[  452.080015]  ffff88007125fc28 ffffffff81256559 ffff88007125fc98 ffffffffa01b2bd1
[  452.080015]  ffff88007125fc58 000000000000000c 00000000029490d0 0000009c71dbe25e
[  452.080015]  000000000000005c 000000080000000e 0000000000000000 ffff880071170600
[  452.080015] Call Trace:
[  452.080015]  [<ffffffff81256559>] _raw_spin_lock+0xe/0x10
[  452.080015]  [<ffffffffa01b2bd1>] l2tp_xmit_skb+0x189/0x4ac [l2tp_core]
[  452.080015]  [<ffffffffa01c2d36>] pppol2tp_sendmsg+0x15e/0x19c [l2tp_ppp]
[  452.080015]  [<ffffffff811c7872>] __sock_sendmsg_nosec+0x22/0x24
[  452.080015]  [<ffffffff811c83bd>] sock_sendmsg+0xa1/0xb6
[  452.080015]  [<ffffffff81254e88>] ? __schedule+0x5c1/0x616
[  452.080015]  [<ffffffff8103c7c6>] ? __dequeue_signal+0xb7/0x10c
[  452.080015]  [<ffffffff810bbd21>] ? fget_light+0x75/0x89
[  452.080015]  [<ffffffff811c8444>] ? sockfd_lookup_light+0x20/0x56
[  452.080015]  [<ffffffff811c9b34>] sys_sendto+0x10c/0x13b
[  452.080015]  [<ffffffff8125cac2>] system_call_fastpath+0x16/0x1b
[  452.080015] Code: 81 48 89 e5 72 0c 31 c0 48 81 ff 45 66 25 81 0f 92 c0 5d c3 55 b8 00 01 00 00 48 89 e5 f0 66 0f c1 07 0f b6 d4 38 d0 74 06 f3 90 <8a> 07 eb f6 5d c3 90 90 55 48 89 e5 9c 58 0f 1f 44 00 00 5d c3
[  452.080015] Call Trace:
[  452.080015]  [<ffffffff81256559>] _raw_spin_lock+0xe/0x10
[  452.080015]  [<ffffffffa01b2bd1>] l2tp_xmit_skb+0x189/0x4ac [l2tp_core]
[  452.080015]  [<ffffffffa01c2d36>] pppol2tp_sendmsg+0x15e/0x19c [l2tp_ppp]
[  452.080015]  [<ffffffff811c7872>] __sock_sendmsg_nosec+0x22/0x24
[  452.080015]  [<ffffffff811c83bd>] sock_sendmsg+0xa1/0xb6
[  452.080015]  [<ffffffff81254e88>] ? __schedule+0x5c1/0x616
[  452.080015]  [<ffffffff8103c7c6>] ? __dequeue_signal+0xb7/0x10c
[  452.080015]  [<ffffffff810bbd21>] ? fget_light+0x75/0x89
[  452.080015]  [<ffffffff811c8444>] ? sockfd_lookup_light+0x20/0x56
[  452.080015]  [<ffffffff811c9b34>] sys_sendto+0x10c/0x13b
[  452.080015]  [<ffffffff8125cac2>] system_call_fastpath+0x16/0x1b
[  452.064012]  virtio_ring virtio [last unloaded: scsi_wait_scan]
[  452.064012]
[  452.064012] Pid: 6662, comm: accel-pppd Not tainted 3.2.46.mini #1 Bochs Bochs
[  452.064012] RIP: 0010:[<ffffffff81059f6e>]  [<ffffffff81059f6e>] do_raw_spin_lock+0x19/0x1f
[  452.064012] RSP: 0018:ffff8800b6e83ba0  EFLAGS: 00000297
[  452.064012] RAX: 000000000000aaa9 RBX: ffff8800b6e83b40 RCX: 0000000000000002
[  452.064012] RDX: 00000000000000aa RSI: 000000000000000a RDI: ffff8800745c8110
[  452.064012] RBP: ffff8800b6e83ba0 R08: 000000000000c802 R09: 000000000000001c
[  452.064012] R10: ffff880071096c4e R11: 0000000000000006 R12: ffff8800b6e83b18
[  452.064012] R13: ffffffff8125d51e R14: ffff8800b6e83ba0 R15: ffff880072a589c0
[  452.064012] FS:  00007fdc0b81e700(0000) GS:ffff8800b6e80000(0000) knlGS:0000000000000000
[  452.064012] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  452.064012] CR2: 0000000000625208 CR3: 0000000074404000 CR4: 00000000000006a0
[  452.064012] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  452.064012] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[  452.064012] Process accel-pppd (pid: 6662, threadinfo ffff88007129a000, task ffff8800744f7410)
[  452.064012] Stack:
[  452.064012]  ffff8800b6e83bb0 ffffffff81256559 ffff8800b6e83bc0 ffffffff8121c64a
[  452.064012]  ffff8800b6e83bf0 ffffffff8121ec7a ffff880072a589c0 ffff880071096c62
[  452.064012]  0000000000000011 ffffffff81430024 ffff8800b6e83c80 ffffffff8121f276
[  452.064012] Call Trace:
[  452.064012]  <IRQ>
[  452.064012]  [<ffffffff81256559>] _raw_spin_lock+0xe/0x10
[  452.064012]  [<ffffffff8121c64a>] spin_lock+0x9/0xb
[  452.064012]  [<ffffffff8121ec7a>] udp_queue_rcv_skb+0x186/0x269
[  452.064012]  [<ffffffff8121f276>] __udp4_lib_rcv+0x297/0x4ae
[  452.064012]  [<ffffffff8121c178>] ? raw_rcv+0xe9/0xf0
[  452.064012]  [<ffffffff8121f4a7>] udp_rcv+0x1a/0x1c
[  452.064012]  [<ffffffff811fe385>] ip_local_deliver_finish+0x12b/0x1a5
[  452.064012]  [<ffffffff811fe54e>] ip_local_deliver+0x53/0x84
[  452.064012]  [<ffffffff811fe1d0>] ip_rcv_finish+0x2bc/0x2f3
[  452.064012]  [<ffffffff811fe78f>] ip_rcv+0x210/0x269
[  452.064012]  [<ffffffff8101911e>] ? kvm_clock_get_cycles+0x9/0xb
[  452.064012]  [<ffffffff811d88cd>] __netif_receive_skb+0x3a5/0x3f7
[  452.064012]  [<ffffffff811d8eba>] netif_receive_skb+0x57/0x5e
[  452.064012]  [<ffffffff811cf30f>] ? __netdev_alloc_skb+0x1f/0x3b
[  452.064012]  [<ffffffffa0049126>] virtnet_poll+0x4ba/0x5a4 [virtio_net]
[  452.064012]  [<ffffffff811d9417>] net_rx_action+0x73/0x184
[  452.064012]  [<ffffffffa01b2cc2>] ? l2tp_xmit_skb+0x27a/0x4ac [l2tp_core]
[  452.064012]  [<ffffffff810343b9>] __do_softirq+0xc3/0x1a8
[  452.064012]  [<ffffffff81013b56>] ? ack_APIC_irq+0x10/0x12
[  452.064012]  [<ffffffff81256559>] ? _raw_spin_lock+0xe/0x10
[  452.064012]  [<ffffffff8125e0ac>] call_softirq+0x1c/0x26
[  452.064012]  [<ffffffff81003587>] do_softirq+0x45/0x82
[  452.064012]  [<ffffffff81034667>] irq_exit+0x42/0x9c
[  452.064012]  [<ffffffff8125e146>] do_IRQ+0x8e/0xa5
[  452.064012]  [<ffffffff8125676e>] common_interrupt+0x6e/0x6e
[  452.064012]  <EOI>
[  452.064012]  [<ffffffff810b82a1>] ? kfree+0x8a/0xa3
[  452.064012]  [<ffffffffa01b2cc2>] ? l2tp_xmit_skb+0x27a/0x4ac [l2tp_core]
[  452.064012]  [<ffffffffa01b2c25>] ? l2tp_xmit_skb+0x1dd/0x4ac [l2tp_core]
[  452.064012]  [<ffffffffa01c2d36>] pppol2tp_sendmsg+0x15e/0x19c [l2tp_ppp]
[  452.064012]  [<ffffffff811c7872>] __sock_sendmsg_nosec+0x22/0x24
[  452.064012]  [<ffffffff811c83bd>] sock_sendmsg+0xa1/0xb6
[  452.064012]  [<ffffffff81254e88>] ? __schedule+0x5c1/0x616
[  452.064012]  [<ffffffff8103c7c6>] ? __dequeue_signal+0xb7/0x10c
[  452.064012]  [<ffffffff810bbd21>] ? fget_light+0x75/0x89
[  452.064012]  [<ffffffff811c8444>] ? sockfd_lookup_light+0x20/0x56
[  452.064012]  [<ffffffff811c9b34>] sys_sendto+0x10c/0x13b
[  452.064012]  [<ffffffff8125cac2>] system_call_fastpath+0x16/0x1b
[  452.064012] Code: 89 e5 72 0c 31 c0 48 81 ff 45 66 25 81 0f 92 c0 5d c3 55 b8 00 01 00 00 48 89 e5 f0 66 0f c1 07 0f b6 d4 38 d0 74 06 f3 90 8a 07 <eb> f6 5d c3 90 90 55 48 89 e5 9c 58 0f 1f 44 00 00 5d c3 55 48
[  452.064012] Call Trace:
[  452.064012]  <IRQ>  [<ffffffff81256559>] _raw_spin_lock+0xe/0x10
[  452.064012]  [<ffffffff8121c64a>] spin_lock+0x9/0xb
[  452.064012]  [<ffffffff8121ec7a>] udp_queue_rcv_skb+0x186/0x269
[  452.064012]  [<ffffffff8121f276>] __udp4_lib_rcv+0x297/0x4ae
[  452.064012]  [<ffffffff8121c178>] ? raw_rcv+0xe9/0xf0
[  452.064012]  [<ffffffff8121f4a7>] udp_rcv+0x1a/0x1c
[  452.064012]  [<ffffffff811fe385>] ip_local_deliver_finish+0x12b/0x1a5
[  452.064012]  [<ffffffff811fe54e>] ip_local_deliver+0x53/0x84
[  452.064012]  [<ffffffff811fe1d0>] ip_rcv_finish+0x2bc/0x2f3
[  452.064012]  [<ffffffff811fe78f>] ip_rcv+0x210/0x269
[  452.064012]  [<ffffffff8101911e>] ? kvm_clock_get_cycles+0x9/0xb
[  452.064012]  [<ffffffff811d88cd>] __netif_receive_skb+0x3a5/0x3f7
[  452.064012]  [<ffffffff811d8eba>] netif_receive_skb+0x57/0x5e
[  452.064012]  [<ffffffff811cf30f>] ? __netdev_alloc_skb+0x1f/0x3b
[  452.064012]  [<ffffffffa0049126>] virtnet_poll+0x4ba/0x5a4 [virtio_net]
[  452.064012]  [<ffffffff811d9417>] net_rx_action+0x73/0x184
[  452.064012]  [<ffffffffa01b2cc2>] ? l2tp_xmit_skb+0x27a/0x4ac [l2tp_core]
[  452.064012]  [<ffffffff810343b9>] __do_softirq+0xc3/0x1a8
[  452.064012]  [<ffffffff81013b56>] ? ack_APIC_irq+0x10/0x12
[  452.064012]  [<ffffffff81256559>] ? _raw_spin_lock+0xe/0x10
[  452.064012]  [<ffffffff8125e0ac>] call_softirq+0x1c/0x26
[  452.064012]  [<ffffffff81003587>] do_softirq+0x45/0x82
[  452.064012]  [<ffffffff81034667>] irq_exit+0x42/0x9c
[  452.064012]  [<ffffffff8125e146>] do_IRQ+0x8e/0xa5
[  452.064012]  [<ffffffff8125676e>] common_interrupt+0x6e/0x6e
[  452.064012]  <EOI>  [<ffffffff810b82a1>] ? kfree+0x8a/0xa3
[  452.064012]  [<ffffffffa01b2cc2>] ? l2tp_xmit_skb+0x27a/0x4ac [l2tp_core]
[  452.064012]  [<ffffffffa01b2c25>] ? l2tp_xmit_skb+0x1dd/0x4ac [l2tp_core]
[  452.064012]  [<ffffffffa01c2d36>] pppol2tp_sendmsg+0x15e/0x19c [l2tp_ppp]
[  452.064012]  [<ffffffff811c7872>] __sock_sendmsg_nosec+0x22/0x24
[  452.064012]  [<ffffffff811c83bd>] sock_sendmsg+0xa1/0xb6
[  452.064012]  [<ffffffff81254e88>] ? __schedule+0x5c1/0x616
[  452.064012]  [<ffffffff8103c7c6>] ? __dequeue_signal+0xb7/0x10c
[  452.064012]  [<ffffffff810bbd21>] ? fget_light+0x75/0x89
[  452.064012]  [<ffffffff811c8444>] ? sockfd_lookup_light+0x20/0x56
[  452.064012]  [<ffffffff811c9b34>] sys_sendto+0x10c/0x13b
[  452.064012]  [<ffffffff8125cac2>] system_call_fastpath+0x16/0x1b

^ permalink raw reply

* [PATCH v2 net-next] net: fix build errors if ipv6 is disabled
From: Eric Dumazet @ 2013-10-09 10:05 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <1381295165.4971.7.camel@edumazet-glaptop.roam.corp.google.com>

From: Eric Dumazet <edumazet@google.com>

CONFIG_IPV6=n is still a valid choice ;)

It appears we can remove dead code.

Reported-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
---
v2: add the missing right parenthesis in ping_bind()

 include/net/ip6_checksum.h |    2 ++
 net/ipv4/ping.c            |    8 +++++---
 net/ipv4/tcp_metrics.c     |    4 ++++
 net/sunrpc/svcsock.c       |    2 ++
 security/lsm_audit.c       |    2 ++
 5 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/include/net/ip6_checksum.h b/include/net/ip6_checksum.h
index 1944406..9e3c540 100644
--- a/include/net/ip6_checksum.h
+++ b/include/net/ip6_checksum.h
@@ -66,12 +66,14 @@ static inline void __tcp_v6_send_check(struct sk_buff *skb,
 	}
 }
 
+#if IS_ENABLED(CONFIG_IPV6)
 static inline void tcp_v6_send_check(struct sock *sk, struct sk_buff *skb)
 {
 	struct ipv6_pinfo *np = inet6_sk(sk);
 
 	__tcp_v6_send_check(skb, &np->saddr, &sk->sk_v6_daddr);
 }
+#endif
 
 int udp6_csum_init(struct sk_buff *skb, struct udphdr *uh, int proto);
 #endif
diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
index ccefc07..a10988a 100644
--- a/net/ipv4/ping.c
+++ b/net/ipv4/ping.c
@@ -415,10 +415,12 @@ int ping_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len)
 		 (int)sk->sk_bound_dev_if);
 
 	err = 0;
-	if ((sk->sk_family == AF_INET && isk->inet_rcv_saddr) ||
-	    (sk->sk_family == AF_INET6 &&
-	     !ipv6_addr_any(&sk->sk_v6_rcv_saddr)))
+	if (sk->sk_family == AF_INET && isk->inet_rcv_saddr)
 		sk->sk_userlocks |= SOCK_BINDADDR_LOCK;
+#if IS_ENABLED(CONFIG_IPV6)
+	if (sk->sk_family == AF_INET6 && !ipv6_addr_any(&sk->sk_v6_rcv_saddr))
+		sk->sk_userlocks |= SOCK_BINDADDR_LOCK;
+#endif
 
 	if (snum)
 		sk->sk_userlocks |= SOCK_BINDPORT_LOCK;
diff --git a/net/ipv4/tcp_metrics.c b/net/ipv4/tcp_metrics.c
index 27535fd..8fcc2cb 100644
--- a/net/ipv4/tcp_metrics.c
+++ b/net/ipv4/tcp_metrics.c
@@ -251,10 +251,12 @@ static struct tcp_metrics_block *__tcp_get_metrics_tw(struct inet_timewait_sock
 		addr.addr.a4 = tw->tw_daddr;
 		hash = (__force unsigned int) addr.addr.a4;
 		break;
+#if IS_ENABLED(CONFIG_IPV6)
 	case AF_INET6:
 		*(struct in6_addr *)addr.addr.a6 = tw->tw_v6_daddr;
 		hash = ipv6_addr_hash(&tw->tw_v6_daddr);
 		break;
+#endif
 	default:
 		return NULL;
 	}
@@ -286,10 +288,12 @@ static struct tcp_metrics_block *tcp_get_metrics(struct sock *sk,
 		addr.addr.a4 = inet_sk(sk)->inet_daddr;
 		hash = (__force unsigned int) addr.addr.a4;
 		break;
+#if IS_ENABLED(CONFIG_IPV6)
 	case AF_INET6:
 		*(struct in6_addr *)addr.addr.a6 = sk->sk_v6_daddr;
 		hash = ipv6_addr_hash(&sk->sk_v6_daddr);
 		break;
+#endif
 	default:
 		return NULL;
 	}
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index 0045c7c..b6e59f0 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -291,12 +291,14 @@ static int svc_one_sock_name(struct svc_sock *svsk, char *buf, int remaining)
 				&inet_sk(sk)->inet_rcv_saddr,
 				inet_sk(sk)->inet_num);
 		break;
+#if IS_ENABLED(CONFIG_IPV6)
 	case PF_INET6:
 		len = snprintf(buf, remaining, "ipv6 %s %pI6 %d\n",
 				proto_name,
 				&sk->sk_v6_rcv_saddr,
 				inet_sk(sk)->inet_num);
 		break;
+#endif
 	default:
 		len = snprintf(buf, remaining, "*unknown-%d*\n",
 				sk->sk_family);
diff --git a/security/lsm_audit.c b/security/lsm_audit.c
index 80554fc..234bc2a 100644
--- a/security/lsm_audit.c
+++ b/security/lsm_audit.c
@@ -302,6 +302,7 @@ static void dump_common_audit_data(struct audit_buffer *ab,
 						"faddr", "fport");
 				break;
 			}
+#if IS_ENABLED(CONFIG_IPV6)
 			case AF_INET6: {
 				struct inet_sock *inet = inet_sk(sk);
 
@@ -313,6 +314,7 @@ static void dump_common_audit_data(struct audit_buffer *ab,
 						"faddr", "fport");
 				break;
 			}
+#endif
 			case AF_UNIX:
 				u = unix_sk(sk);
 				if (u->path.dentry) {

^ permalink raw reply related

* Re: MBIM device refusing to be enabled
From: Bjørn Mork @ 2013-10-09 10:05 UTC (permalink / raw)
  To: Oliver Neukum; +Cc: Dan Williams, netdev
In-Reply-To: <1381309180.3464.2.camel@linux-fkkt.site>

Oliver Neukum <oliver@neukum.org> writes:

> I have a device which the kernel and MM (1.0) identify as MBIM.
> I can transfer the PIN, but the device refuses to be enabled.
> Any idea?

[..]

> 2013-10-09T10:49:49.930237+02:00 linux-3m4i ModemManager[566]:
> [/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>>   length =
> 56#012>>>>>>   data   =
> 03:00:00:80:38:00:00:00:13:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:03:00:00:00:00:00:00:00:08:00:00:00:01:00:00:00:00:00:00:00
> 2013-10-09T10:49:49.930545+02:00 linux-3m4i ModemManager[566]:
> [/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
> Header:#012>>>>>>   length      = 56#012>>>>>>   type        =
> command-done (0x80000003)#012>>>>>>   transaction = 19#012>>>>>>
> Fragment header:#012>>>>>>   total   = 1#012>>>>>>   current =
> 0#012>>>>>> Contents:#012>>>>>>   status error =
> 'None' (0x00000000)#012>>>>>>   service      =
> 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>>   cid
> = 'radio-state' (0x00000003)

It's a bit difficult to read these logs, but decoding the raw data
results in:

MBIM_MESSAGE_HEADER
  MessageType:  0x80000003 (MBIM_COMMAND_DONE)
  MessageLength:        56
  TransactionId:        19
MBIM_FRAGMENT_HEADER
  TotalFragments:       0x00000001
  CurrentFragment:      0x00000000
BASIC_CONNECT (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)
MBIM_CID_RADIO_STATE (3)
MBIM_STATUS_SUCCESS (0)
InformationBuffer [8]:
  HwRadioState: on
  SwRadioState: off

Which either means that the radio is disabled using rfkill, or that
there is a problem with the platform rfkill driver for your laptop.
In any case, this is the reason you cannot enable the modem.

Does "rfkill list" confirm that the radio is disabled?  Can you change
it?


Bjørn

^ permalink raw reply

* Re: [PATCH net-next] net: fix build errors if ipv6 is disabled
From: Eric Dumazet @ 2013-10-09 10:05 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <20131009.025231.608686215035548132.davem@davemloft.net>

On Wed, 2013-10-09 at 02:52 -0400, David Miller wrote:
> From: Eric Dumazet <eric.dumazet@gmail.com>
> Date: Tue, 08 Oct 2013 22:06:05 -0700
> 
> > +#if IS_ENABLED(CONFIG_IPV6)
> > +	if (sk->sk_family == AF_INET6 && !ipv6_addr_any(&sk->sk_v6_rcv_saddr)
> > +		sk->sk_userlocks |= SOCK_BINDADDR_LOCK;
> > +#endif
> 
> Would you mind testing this with ipv6 enabled again? :-/

Humpf :(

^ permalink raw reply

* MBIM device refusing to be enabled
From: Oliver Neukum @ 2013-10-09  8:59 UTC (permalink / raw)
  To: Bjørn Mork; +Cc: Dan Williams, netdev


Hi,

I have a device which the kernel and MM (1.0) identify as MBIM.
I can transfer the PIN, but the device refuses to be enabled.
Any idea?

	Regards
		Oliver


2013-10-09T10:47:29.178266+02:00 linux-3m4i ModemManager[566]: <info>
logging: level 'DEBUG'
2013-10-09T10:47:38.225349+02:00 linux-3m4i dbus[559]: [system]
Activating service name='org.freedesktop.PackageKit' (using
servicehelper)
2013-10-09T10:47:38.740641+02:00 linux-3m4i dbus[559]: [system]
Successfully activated service 'org.freedesktop.PackageKit'
2013-10-09T10:47:52.007437+02:00 linux-3m4i ModemManager[566]: <debug>
Sending PIN...
2013-10-09T10:47:52.007696+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<<   length =
80#012<<<<<<   data   =
03:00:00:00:50:00:00:00:0C:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:04:00:00:00:01:00:00:00:20:00:00:00:02:00:00:00:00:00:00:00:18:00:00:00:08:00:00:00:00:00:00:00:00:00:00:00:34:00:35:00:36:00:37:00
2013-10-09T10:47:52.007858+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length      = 80#012<<<<<<   type        = command
(0x00000003)#012<<<<<<   transaction = 12#012<<<<<< Fragment
header:#012<<<<<<   total   = 1#012<<<<<<   current = 0#012<<<<<<
Contents:#012<<<<<<   service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<<   cid
= 'pin' (0x00000004)#012<<<<<<   type    = 'set' (0x00000001)
2013-10-09T10:47:52.523386+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>>   length =
60#012>>>>>>   data   =
03:00:00:80:3C:00:00:00:0C:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:04:00:00:00:00:00:00:00:0C:00:00:00:03:00:00:00:01:00:00:00:03:00:00:00
2013-10-09T10:47:52.523709+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>>   length      = 60#012>>>>>>   type        =
command-done (0x80000003)#012>>>>>>   transaction = 12#012>>>>>>
Fragment header:#012>>>>>>   total   = 1#012>>>>>>   current =
0#012>>>>>> Contents:#012>>>>>>   status error =
'None' (0x00000000)#012>>>>>>   service      =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>>   cid
= 'pin' (0x00000004)
2013-10-09T10:47:52.523917+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<<   length =
48#012<<<<<<   data   =
03:00:00:00:30:00:00:00:0D:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:00:00:00:00:00:00:00:00
2013-10-09T10:47:52.524080+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length      = 48#012<<<<<<   type        = command
(0x00000003)#012<<<<<<   transaction = 13#012<<<<<< Fragment
header:#012<<<<<<   total   = 1#012<<<<<<   current = 0#012<<<<<<
Contents:#012<<<<<<   service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<<   cid
= 'subscriber-ready-status' (0x00000002)#012<<<<<<   type    =
'query' (0x00000000)
2013-10-09T10:47:54.155263+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>>   length =
112#012>>>>>>   data   =
07:00:00:80:70:00:00:00:00:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:44:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:1C:00:00:00:26:00:00:00:00:00:00:00:00:00:00:00:38:00:39:00:34:00:39:00:32:00:32:00:36:00:30:00:37:00:30:00:36:00:39:00:32:00:31:00:34:00:35:00:39:00:34:00:30:00:00:00
2013-10-09T10:47:54.156023+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>>   length      = 112#012>>>>>>   type        =
indicate-status (0x80000007)#012>>>>>>   transaction = 0#012>>>>>>
Fragment header:#012>>>>>>   total   = 1#012>>>>>>   current =
0#012>>>>>> Contents:#012>>>>>>   service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>>   cid
= 'subscriber-ready-status' (0x00000002)
2013-10-09T10:47:54.219500+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>>   length =
116#012>>>>>>   data   =
03:00:00:80:74:00:00:00:0D:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:00:00:00:00:44:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:1C:00:00:00:26:00:00:00:00:00:00:00:00:00:00:00:38:00:39:00:34:00:39:00:32:00:32:00:36:00:30:00:37:00:30:00:36:00:39:00:32:00:31:00:34:00:35:00:39:00:34:00:30:00:00:00
2013-10-09T10:47:54.220527+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>>   length      = 116#012>>>>>>   type        =
command-done (0x80000003)#012>>>>>>   transaction = 13#012>>>>>>
Fragment header:#012>>>>>>   total   = 1#012>>>>>>   current =
0#012>>>>>> Contents:#012>>>>>>   status error =
'None' (0x00000000)#012>>>>>>   service      =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>>   cid
= 'subscriber-ready-status' (0x00000002)            
2013-10-09T10:47:55.147385+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>>   length =
144#012>>>>>>   data   =
07:00:00:80:90:00:00:00:00:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:64:00:00:00:01:00:00:00:1C:00:00:00:1E:00:00:00:3C:00:00:00:26:00:00:00:00:00:00:00:00:00:00:00:32:00:36:00:32:00:30:00:37:00:33:00:39:00:34:00:37:00:36:00:32:00:34:00:36:00:31:00:34:00:00:00:38:00:39:00:34:00:39:00:32:00:32:00:36:00:30:00:37:00:30:00:36:00:39:00:32:00:31:00:34:00:35:00:39:00:34:00:30:00:00:00                                                                                                                                                                                                                              
2013-10-09T10:47:55.156021+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>>   length      = 144#012>>>>>>   type        =
indicate-status (0x80000007)#012>>>>>>   transaction = 0#012>>>>>>
Fragment header:#012>>>>>>   total   = 1#012>>>>>>   current =
0#012>>>>>> Contents:#012>>>>>>   service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>>   cid
=
'subscriber-ready-status' (0x00000002)                                                                   
2013-10-09T10:47:55.156724+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<<   length =
48#012<<<<<<   data   =
03:00:00:00:30:00:00:00:0E:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:00:00:00:00:00:00:00:00                                                                                                                                                                                                                                                    
2013-10-09T10:47:55.157383+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length      = 48#012<<<<<<   type        = command
(0x00000003)#012<<<<<<   transaction = 14#012<<<<<< Fragment
header:#012<<<<<<   total   = 1#012<<<<<<   current = 0#012<<<<<<
Contents:#012<<<<<<   service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<<   cid
= 'subscriber-ready-status' (0x00000002)#012<<<<<<   type    =
'query' (0x00000000)                                    
2013-10-09T10:47:55.371469+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>>   length =
148#012>>>>>>   data   =
03:00:00:80:94:00:00:00:0E:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:00:00:00:00:64:00:00:00:01:00:00:00:1C:00:00:00:1E:00:00:00:3C:00:00:00:26:00:00:00:00:00:00:00:00:00:00:00:32:00:36:00:32:00:30:00:37:00:33:00:39:00:34:00:37:00:36:00:32:00:34:00:36:00:31:00:34:00:00:00:38:00:39:00:34:00:39:00:32:00:32:00:36:00:30:00:37:00:30:00:36:00:39:00:32:00:31:00:34:00:35:00:39:00:34:00:30:00:00:00                                                                                                                                                                                                                  
2013-10-09T10:47:55.382816+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>>   length      = 148#012>>>>>>   type        =
command-done (0x80000003)#012>>>>>>   transaction = 14#012>>>>>>
Fragment header:#012>>>>>>   total   = 1#012>>>>>>   current =
0#012>>>>>> Contents:#012>>>>>>   status error =
'None' (0x00000000)#012>>>>>>   service      =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>>   cid
= 'subscriber-ready-status' (0x00000002)            
2013-10-09T10:47:55.383892+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<<   length =
48#012<<<<<<   data   =
03:00:00:00:30:00:00:00:0F:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:04:00:00:00:00:00:00:00:00:00:00:00                                                                                                                                                                                                                                                    
2013-10-09T10:47:55.384610+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length      = 48#012<<<<<<   type        = command
(0x00000003)#012<<<<<<   transaction = 15#012<<<<<< Fragment
header:#012<<<<<<   total   = 1#012<<<<<<   current = 0#012<<<<<<
Contents:#012<<<<<<   service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<<   cid
= 'pin' (0x00000004)#012<<<<<<   type    =
'query' (0x00000000)                                                        
2013-10-09T10:47:55.403320+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>>   length =
60#012>>>>>>   data   =
03:00:00:80:3C:00:00:00:0F:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:04:00:00:00:00:00:00:00:0C:00:00:00:03:00:00:00:01:00:00:00:03:00:00:00                                                                                                                                                                                                            
2013-10-09T10:47:55.404271+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>>   length      = 60#012>>>>>>   type        =
command-done (0x80000003)#012>>>>>>   transaction = 15#012>>>>>>
Fragment header:#012>>>>>>   total   = 1#012>>>>>>   current =
0#012>>>>>> Contents:#012>>>>>>   status error =
'None' (0x00000000)#012>>>>>>   service      =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>>   cid
= 'pin' (0x00000004)                                 
2013-10-09T10:47:55.404934+02:00 linux-3m4i ModemManager[566]: <debug>
SIM is ready, and no need for the after SIM unlock
step...                                                                                                                                              
2013-10-09T10:47:55.405665+02:00 linux-3m4i ModemManager[566]: <info>
Modem /org/freedesktop/ModemManager1/Modem/0: state changed (locked ->
initializing)                                                                                                                    
2013-10-09T10:47:55.406433+02:00 linux-3m4i ModemManager[566]: <debug>
Couldn't start parent initialization: Couldn't open ports during modem
initialization: Couldn't get primary
port                                                                                        
2013-10-09T10:47:55.407267+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<<   length =
48#012<<<<<<   data   =
03:00:00:00:30:00:00:00:10:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:00:00:00:00:00:00:00:00                                                                                                                                                                                                                                                    
2013-10-09T10:47:55.408019+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length      = 48#012<<<<<<   type        = command
(0x00000003)#012<<<<<<   transaction = 16#012<<<<<< Fragment
header:#012<<<<<<   total   = 1#012<<<<<<   current = 0#012<<<<<<
Contents:#012<<<<<<   service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<<   cid
= 'subscriber-ready-status' (0x00000002)#012<<<<<<   type    =
'query' (0x00000000)
2013-10-09T10:47:55.723474+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>>   length =
148#012>>>>>>   data   =
03:00:00:80:94:00:00:00:10:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:00:00:00:00:64:00:00:00:01:00:00:00:1C:00:00:00:1E:00:00:00:3C:00:00:00:26:00:00:00:00:00:00:00:00:00:00:00:32:00:36:00:32:00:30:00:37:00:33:00:39:00:34:00:37:00:36:00:32:00:34:00:36:00:31:00:34:00:00:00:38:00:39:00:34:00:39:00:32:00:32:00:36:00:30:00:37:00:30:00:36:00:39:00:32:00:31:00:34:00:35:00:39:00:34:00:30:00:00:00
2013-10-09T10:47:55.730738+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>>   length      = 148#012>>>>>>   type        =
command-done (0x80000003)#012>>>>>>   transaction = 16#012>>>>>>
Fragment header:#012>>>>>>   total   = 1#012>>>>>>   current =
0#012>>>>>> Contents:#012>>>>>>   status error =
'None' (0x00000000)#012>>>>>>   service      =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>>   cid
= 'subscriber-ready-status' (0x00000002)
2013-10-09T10:47:55.731038+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<<   length =
48#012<<<<<<   data   =
03:00:00:00:30:00:00:00:11:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:00:00:00:00:00:00:00:00
2013-10-09T10:47:55.731245+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length      = 48#012<<<<<<   type        = command
(0x00000003)#012<<<<<<   transaction = 17#012<<<<<< Fragment
header:#012<<<<<<   total   = 1#012<<<<<<   current = 0#012<<<<<<
Contents:#012<<<<<<   service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<<   cid
= 'subscriber-ready-status' (0x00000002)#012<<<<<<   type    =
'query' (0x00000000)
2013-10-09T10:47:55.819357+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>>   length =
92#012>>>>>>   data   =
07:00:00:80:5C:00:00:00:00:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:09:00:00:00:30:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:02:00:00:00
2013-10-09T10:47:55.820197+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>>   length      = 92#012>>>>>>   type        =
indicate-status (0x80000007)#012>>>>>>   transaction = 0#012>>>>>>
Fragment header:#012>>>>>>   total   = 1#012>>>>>>   current =
0#012>>>>>> Contents:#012>>>>>>   service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>>   cid
= 'register-state' (0x00000009)
2013-10-09T10:47:56.011348+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>>   length =
148#012>>>>>>   data   =
03:00:00:80:94:00:00:00:11:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:00:00:00:00:64:00:00:00:01:00:00:00:1C:00:00:00:1E:00:00:00:3C:00:00:00:26:00:00:00:00:00:00:00:00:00:00:00:32:00:36:00:32:00:30:00:37:00:33:00:39:00:34:00:37:00:36:00:32:00:34:00:36:00:31:00:34:00:00:00:38:00:39:00:34:00:39:00:32:00:32:00:36:00:30:00:37:00:30:00:36:00:39:00:32:00:31:00:34:00:35:00:39:00:34:00:30:00:00:00
2013-10-09T10:47:56.019690+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>>   length      = 148#012>>>>>>   type        =
command-done (0x80000003)#012>>>>>>   transaction = 17#012>>>>>>
Fragment header:#012>>>>>>   total   = 1#012>>>>>>   current =
0#012>>>>>> Contents:#012>>>>>>   status error =
'None' (0x00000000)#012>>>>>>   service      =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>>   cid
= 'subscriber-ready-status' (0x00000002)
2013-10-09T10:47:56.019982+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<<   length =
48#012<<<<<<   data   =
03:00:00:00:30:00:00:00:12:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:05:00:00:00:00:00:00:00:00:00:00:00
2013-10-09T10:47:56.020146+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length      = 48#012<<<<<<   type        = command
(0x00000003)#012<<<<<<   transaction = 18#012<<<<<< Fragment
header:#012<<<<<<   total   = 1#012<<<<<<   current = 0#012<<<<<<
Contents:#012<<<<<<   service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<<   cid
= 'pin-list' (0x00000005)#012<<<<<<   type    = 'query' (0x00000000)
2013-10-09T10:47:56.203263+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>>   length =
208#012>>>>>>   data   =
03:00:00:80:D0:00:00:00:12:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:05:00:00:00:00:00:00:00:A0:00:00:00:01:00:00:00:01:00:00:00:04:00:00:00:08:00:00:00:01:00:00:00:01:00:00:00:04:00:00:00:08:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:01:00:00:00:01:00:00:00:04:00:00:00:10:00:00:00:01:00:00:00:01:00:00:00:04:00:00:00:10:00:00:00:01:00:00:00:01:00:00:00:04:00:00:00:10:00:00:00:01:00:00:00:01:00:00:00:04:00:00:00:10:00:00:00:01:00:00:00:01:00:00:00:04:00:00:00:10:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
2013-10-09T10:47:56.209923+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>>   length      = 208#012>>>>>>   type        =
command-done (0x80000003)#012>>>>>>   transaction = 18#012>>>>>>
Fragment header:#012>>>>>>   total   = 1#012>>>>>>   current =
0#012>>>>>> Contents:#012>>>>>>   status error =
'None' (0x00000000)#012>>>>>>   service      =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>>   cid
= 'pin-list' (0x00000005)
2013-10-09T10:47:56.210238+02:00 linux-3m4i ModemManager[566]: <debug>
USSD support check failed: 'No AT port available to run command'
2013-10-09T10:47:56.210451+02:00 linux-3m4i ModemManager[566]: <debug>
Couldn't initialize interface: 'USSD not supported'
2013-10-09T10:47:56.210665+02:00 linux-3m4i ModemManager[566]: <debug>
loading MEID...
2013-10-09T10:47:56.210891+02:00 linux-3m4i ModemManager[566]: <warn>
couldn't load MEID: 'No AT port available to run command'
2013-10-09T10:47:56.211103+02:00 linux-3m4i ModemManager[566]: <debug>
loading ESN...
2013-10-09T10:47:56.211279+02:00 linux-3m4i ModemManager[566]: <warn>
couldn't load ESN: 'No AT port available to run command'
2013-10-09T10:47:56.211455+02:00 linux-3m4i ModemManager[566]: <debug>
Messaging capabilities supported
2013-10-09T10:47:56.211648+02:00 linux-3m4i ModemManager[566]: <debug>
Supported storages loaded:
2013-10-09T10:47:56.211822+02:00 linux-3m4i ModemManager[566]: <debug>
mem1 (list/read/delete) storages: 'mt'
2013-10-09T10:47:56.211996+02:00 linux-3m4i ModemManager[566]: <debug>
mem2 (write/send) storages:       'mt'
2013-10-09T10:47:56.212164+02:00 linux-3m4i ModemManager[566]: <debug>
mem3 (reception) storages:        'mt'
2013-10-09T10:47:56.212334+02:00 linux-3m4i ModemManager[566]: <debug>
Couldn't initialize interface: 'Time not supported'
2013-10-09T10:47:56.212504+02:00 linux-3m4i ModemManager[566]: <debug>
Couldn't initialize interface: 'Firmware not supported'
2013-10-09T10:47:56.212689+02:00 linux-3m4i ModemManager[566]: <info>
Modem /org/freedesktop/ModemManager1/Modem/0: state changed
(initializing -> disabled)
2013-10-09T10:47:57.739388+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>>   length =
96#012>>>>>>   data   =
07:00:00:80:60:00:00:00:00:00:00:00:01:00:00:00:00:00:00:00:53:3F:BE:EB:14:FE:44:67:9F:90:33:A2:23:E5:6C:3F:01:00:00:00:34:00:00:00:01:00:00:00:00:00:00:00:13:01:00:00:00:00:00:00:18:00:00:00:1A:00:00:00:2B:00:34:00:39:00:31:00:37:00:36:00:30:00:30:00:30:00:30:00:34:00:34:00:33:00:00:00
2013-10-09T10:47:57.740182+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>>   length      = 96#012>>>>>>   type        =
indicate-status (0x80000007)#012>>>>>>   transaction = 0#012>>>>>>
Fragment header:#012>>>>>>   total   = 1#012>>>>>>   current =
0#012>>>>>> Contents:#012>>>>>>   service =
'sms' (533fbeeb-14fe-4467-9f90-33a223e56c3f)#012>>>>>>   cid     =
'configuration' (0x00000001)
2013-10-09T10:47:59.659410+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>>   length =
144#012>>>>>>   data   =
07:00:00:80:90:00:00:00:00:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:64:00:00:00:01:00:00:00:1C:00:00:00:1E:00:00:00:3C:00:00:00:26:00:00:00:00:00:00:00:00:00:00:00:32:00:36:00:32:00:30:00:37:00:33:00:39:00:34:00:37:00:36:00:32:00:34:00:36:00:31:00:34:00:00:00:38:00:39:00:34:00:39:00:32:00:32:00:36:00:30:00:37:00:30:00:36:00:39:00:32:00:31:00:34:00:35:00:39:00:34:00:30:00:00:00
2013-10-09T10:47:59.660803+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>>   length      = 144#012>>>>>>   type        =
indicate-status (0x80000007)#012>>>>>>   transaction = 0#012>>>>>>
Fragment header:#012>>>>>>   total   = 1#012>>>>>>   current =
0#012>>>>>> Contents:#012>>>>>>   service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>>   cid
= 'subscriber-ready-status' (0x00000002)
2013-10-09T10:48:02.923277+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>>   length =
64#012>>>>>>   data   =
07:00:00:80:40:00:00:00:00:00:00:00:01:00:00:00:00:00:00:00:4B:F3:84:76:1E:6A:41:DB:B1:D8:BE:D2:89:C2:5B:DB:01:00:00:00:14:00:00:00:01:00:00:00:FA:00:00:00:23:00:00:00:50:00:00:00:10:00:00:00
2013-10-09T10:48:02.924258+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>>   length      = 64#012>>>>>>   type        =
indicate-status (0x80000007)#012>>>>>>   transaction = 0#012>>>>>>
Fragment header:#012>>>>>>   total   = 1#012>>>>>>   current =
0#012>>>>>> Contents:#012>>>>>>   service =
'phonebook' (4bf38476-1e6a-41db-b1d8-bed289c25bdb)#012>>>>>>   cid     =
'configuration' (0x00000001)
2013-10-09T10:49:49.862932+02:00 linux-3m4i ModemManager[566]: <info>
Simple connect started...
2013-10-09T10:49:49.863198+02:00 linux-3m4i ModemManager[566]: <debug>
PIN: unspecified
2013-10-09T10:49:49.863414+02:00 linux-3m4i ModemManager[566]: <debug>
Operator ID: unspecified
2013-10-09T10:49:49.863622+02:00 linux-3m4i ModemManager[566]: <debug>
Allowed roaming: yes
2013-10-09T10:49:49.863775+02:00 linux-3m4i ModemManager[566]: <debug>
APN: internet
2013-10-09T10:49:49.863936+02:00 linux-3m4i ModemManager[566]: <debug>
IP family: unspecified
2013-10-09T10:49:49.864062+02:00 linux-3m4i ModemManager[566]: <debug>
Allowed authentication: unspecified
2013-10-09T10:49:49.864178+02:00 linux-3m4i ModemManager[566]: <debug>
User: unspecified
2013-10-09T10:49:49.864294+02:00 linux-3m4i ModemManager[566]: <debug>
Password: unspecified
2013-10-09T10:49:49.864410+02:00 linux-3m4i ModemManager[566]: <debug>
Number: *99#
2013-10-09T10:49:49.864525+02:00 linux-3m4i ModemManager[566]: <info>
Simple connect state (3/8): Enable
2013-10-09T10:49:49.865117+02:00 linux-3m4i ModemManager[566]: <debug>
Couldn't start parent enabling: Couldn't open ports during modem
enabling: Couldn't get primary port
2013-10-09T10:49:49.865308+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<<   length =
48#012<<<<<<   data   =
03:00:00:00:30:00:00:00:13:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:03:00:00:00:00:00:00:00:00:00:00:00
2013-10-09T10:49:49.865435+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length      = 48#012<<<<<<   type        = command
(0x00000003)#012<<<<<<   transaction = 19#012<<<<<< Fragment
header:#012<<<<<<   total   = 1#012<<<<<<   current = 0#012<<<<<<
Contents:#012<<<<<<   service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<<   cid
= 'radio-state' (0x00000003)#012<<<<<<   type    = 'query' (0x00000000)
2013-10-09T10:49:49.930237+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>>   length =
56#012>>>>>>   data   =
03:00:00:80:38:00:00:00:13:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:03:00:00:00:00:00:00:00:08:00:00:00:01:00:00:00:00:00:00:00
2013-10-09T10:49:49.930545+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>>   length      = 56#012>>>>>>   type        =
command-done (0x80000003)#012>>>>>>   transaction = 19#012>>>>>>
Fragment header:#012>>>>>>   total   = 1#012>>>>>>   current =
0#012>>>>>> Contents:#012>>>>>>   status error =
'None' (0x00000000)#012>>>>>>   service      =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>>   cid
= 'radio-state' (0x00000003)
2013-10-09T10:49:49.930718+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<<   length =
52#012<<<<<<   data   =
03:00:00:00:34:00:00:00:14:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:03:00:00:00:01:00:00:00:04:00:00:00:01:00:00:00
2013-10-09T10:49:49.930887+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length      = 52#012<<<<<<   type        = command
(0x00000003)#012<<<<<<   transaction = 20#012<<<<<< Fragment
header:#012<<<<<<   total   = 1#012<<<<<<   current = 0#012<<<<<<
Contents:#012<<<<<<   service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<<   cid
= 'radio-state' (0x00000003)#012<<<<<<   type    = 'set' (0x00000001)
2013-10-09T10:49:49.962281+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>>   length =
56#012>>>>>>   data   =
03:00:00:80:38:00:00:00:14:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:03:00:00:00:02:00:00:00:08:00:00:00:01:00:00:00:00:00:00:00
2013-10-09T10:49:49.963360+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>>   length      = 56#012>>>>>>   type        =
command-done (0x80000003)#012>>>>>>   transaction = 20#012>>>>>>
Fragment header:#012>>>>>>   total   = 1#012>>>>>>   current =
0#012>>>>>> Contents:#012>>>>>>   status error =
'Failure' (0x00000002)#012>>>>>>   service      =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>>   cid
= 'radio-state' (0x00000003)
2013-10-09T10:49:49.963974+02:00 linux-3m4i ModemManager[566]: <info>
Modem /org/freedesktop/ModemManager1/Modem/0: state changed (enabling ->
disabled)

^ permalink raw reply

* Re: [PATCH] veth: allow to setup multicast address for veth device
From: Gao feng @ 2013-10-09  8:58 UTC (permalink / raw)
  To: davem; +Cc: Gao feng, netdev, pablo, edumazet, kaber, hannes
In-Reply-To: <1380876744-606-1-git-send-email-gaofeng@cn.fujitsu.com>

Hi David,

On 10/04/2013 04:52 PM, Gao feng wrote:
> We can only setup multicast address for network device when
> net_device_ops->ndo_set_rx_mode is not null.
> 
> Some configurations need to add multicast address for net
> device, such as netfilter cluster match module.
> 
> Add a fake ndo_set_rx_mode function to allow this operation.
> 
> Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>

I see this patch being marked as "Changes Requested" on patchwork.
Is there something I missed?

^ permalink raw reply

* Congratulations !!!
From: office4 @ 2013-10-09  8:14 UTC (permalink / raw)
  To: Recipients

Ticket Number: 7PWYZ2008
Ballot Number: BT:12052008/20
Draw:#1471

Special Notification to you,You are receiving this email because you have just been picked for a total grand prize of One Million Dollars in the top 10 winners of the Coca-Cola Consumer`s Award for the year 2013: kindly send your:

Name:
Address:
Country:
Phone Number:

To Mr. Bruce Morgan
via Email: colaclaims13@msn.com
Telephone Number:+447010069098

^ permalink raw reply

* Re: [PATCH] tun: don't look at current when non-blocking
From: Michael S. Tsirkin @ 2013-10-09  8:13 UTC (permalink / raw)
  To: Jason Wang; +Cc: David Miller, netdev, linux-kernel, edumazet, xemul
In-Reply-To: <5254F6CF.8080606@redhat.com>

On Wed, Oct 09, 2013 at 02:25:19PM +0800, Jason Wang wrote:
> On 10/09/2013 03:46 AM, David Miller wrote:
> > From: "Michael S. Tsirkin" <mst@redhat.com>
> > Date: Sun, 6 Oct 2013 21:25:12 +0300
> >
> >> We play with a wait queue even if socket is
> >> non blocking. This is an obvious waste.
> >> Besides, it will prevent calling the non blocking
> >> variant when current is not valid.
> >>
> >> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > Applied and queued up for -stable, thanks.
> > --
> 
> Michael, I believe this is just an optimization or a required patch of
> your following patches. So no need go for stable?

I don't think it's required for stable.

^ permalink raw reply

* [PATCH v2] mac80211: port CCMP to cryptoapi's CCM driver
From: Ard Biesheuvel @ 2013-10-09  7:56 UTC (permalink / raw)
  To: linux-wireless, netdev; +Cc: patches, johannes, David.Laight, Ard Biesheuvel

Use the generic CCM aead chaining mode driver rather than a local
implementation that sits right on top of the core AES cipher.

This allows the use of accelerated implementations of either
CCM as a whole or the CTR mode which it encapsulates.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---

Changes since v1:
- use a better way to allocate the variable size aead_request struct on the
  stack;
- pass only a single data pointer argument as we always encrypt/decrypt in
  place;
- add a comment about how vector b_0 is generated.

 
 net/mac80211/Kconfig   |   1 +
 net/mac80211/aes_ccm.c | 169 ++++++++++++++++---------------------------------
 net/mac80211/aes_ccm.h |  14 ++--
 net/mac80211/key.h     |   2 +-
 net/mac80211/wpa.c     |  41 ++++++------
 5 files changed, 85 insertions(+), 142 deletions(-)

diff --git a/net/mac80211/Kconfig b/net/mac80211/Kconfig
index 62535fe..dc31ec3 100644
--- a/net/mac80211/Kconfig
+++ b/net/mac80211/Kconfig
@@ -4,6 +4,7 @@ config MAC80211
 	select CRYPTO
 	select CRYPTO_ARC4
 	select CRYPTO_AES
+	select CRYPTO_CCM
 	select CRC32
 	select AVERAGE
 	---help---
diff --git a/net/mac80211/aes_ccm.c b/net/mac80211/aes_ccm.c
index be7614b9..7c7df47 100644
--- a/net/mac80211/aes_ccm.c
+++ b/net/mac80211/aes_ccm.c
@@ -2,6 +2,8 @@
  * Copyright 2003-2004, Instant802 Networks, Inc.
  * Copyright 2005-2006, Devicescape Software, Inc.
  *
+ * Rewrite: Copyright (C) 2013 Linaro Ltd <ard.biesheuvel@linaro.org>
+ *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
@@ -17,134 +19,75 @@
 #include "key.h"
 #include "aes_ccm.h"
 
-static void aes_ccm_prepare(struct crypto_cipher *tfm, u8 *scratch, u8 *a)
+void ieee80211_aes_ccm_encrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad,
+			       u8 *data, size_t data_len, u8 *mic)
 {
-	int i;
-	u8 *b_0, *aad, *b, *s_0;
-
-	b_0 = scratch + 3 * AES_BLOCK_SIZE;
-	aad = scratch + 4 * AES_BLOCK_SIZE;
-	b = scratch;
-	s_0 = scratch + AES_BLOCK_SIZE;
-
-	crypto_cipher_encrypt_one(tfm, b, b_0);
+	struct scatterlist assoc, pt, ct[2];
+	struct {
+		struct aead_request	req;
+		u8			priv[crypto_aead_reqsize(tfm)];
+	} aead_req;
 
-	/* Extra Authenticate-only data (always two AES blocks) */
-	for (i = 0; i < AES_BLOCK_SIZE; i++)
-		aad[i] ^= b[i];
-	crypto_cipher_encrypt_one(tfm, b, aad);
+	memset(&aead_req, 0, sizeof(aead_req));
 
-	aad += AES_BLOCK_SIZE;
+	sg_init_one(&pt, data, data_len);
+	sg_init_one(&assoc, &aad[2], be16_to_cpup((__be16 *)aad));
+	sg_init_table(ct, 2);
+	sg_set_buf(&ct[0], data, data_len);
+	sg_set_buf(&ct[1], mic, IEEE80211_CCMP_MIC_LEN);
 
-	for (i = 0; i < AES_BLOCK_SIZE; i++)
-		aad[i] ^= b[i];
-	crypto_cipher_encrypt_one(tfm, a, aad);
+	aead_request_set_tfm(&aead_req.req, tfm);
+	aead_request_set_assoc(&aead_req.req, &assoc, assoc.length);
+	aead_request_set_crypt(&aead_req.req, &pt, ct, data_len, b_0);
 
-	/* Mask out bits from auth-only-b_0 */
-	b_0[0] &= 0x07;
-
-	/* S_0 is used to encrypt T (= MIC) */
-	b_0[14] = 0;
-	b_0[15] = 0;
-	crypto_cipher_encrypt_one(tfm, s_0, b_0);
+	crypto_aead_encrypt(&aead_req.req);
 }
 
-
-void ieee80211_aes_ccm_encrypt(struct crypto_cipher *tfm, u8 *scratch,
-			       u8 *data, size_t data_len,
-			       u8 *cdata, u8 *mic)
+int ieee80211_aes_ccm_decrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad,
+			      u8 *data, size_t data_len, u8 *mic)
 {
-	int i, j, last_len, num_blocks;
-	u8 *pos, *cpos, *b, *s_0, *e, *b_0;
-
-	b = scratch;
-	s_0 = scratch + AES_BLOCK_SIZE;
-	e = scratch + 2 * AES_BLOCK_SIZE;
-	b_0 = scratch + 3 * AES_BLOCK_SIZE;
-
-	num_blocks = DIV_ROUND_UP(data_len, AES_BLOCK_SIZE);
-	last_len = data_len % AES_BLOCK_SIZE;
-	aes_ccm_prepare(tfm, scratch, b);
-
-	/* Process payload blocks */
-	pos = data;
-	cpos = cdata;
-	for (j = 1; j <= num_blocks; j++) {
-		int blen = (j == num_blocks && last_len) ?
-			last_len : AES_BLOCK_SIZE;
-
-		/* Authentication followed by encryption */
-		for (i = 0; i < blen; i++)
-			b[i] ^= pos[i];
-		crypto_cipher_encrypt_one(tfm, b, b);
-
-		b_0[14] = (j >> 8) & 0xff;
-		b_0[15] = j & 0xff;
-		crypto_cipher_encrypt_one(tfm, e, b_0);
-		for (i = 0; i < blen; i++)
-			*cpos++ = *pos++ ^ e[i];
-	}
-
-	for (i = 0; i < IEEE80211_CCMP_MIC_LEN; i++)
-		mic[i] = b[i] ^ s_0[i];
+	struct scatterlist assoc, pt, ct[2];
+	struct {
+		struct aead_request	req;
+		u8			priv[crypto_aead_reqsize(tfm)];
+	} aead_req;
+
+	memset(&aead_req, 0, sizeof(aead_req));
+
+	sg_init_one(&pt, data, data_len);
+	sg_init_one(&assoc, &aad[2], be16_to_cpup((__be16 *)aad));
+	sg_init_table(ct, 2);
+	sg_set_buf(&ct[0], data, data_len);
+	sg_set_buf(&ct[1], mic, IEEE80211_CCMP_MIC_LEN);
+
+	aead_request_set_tfm(&aead_req.req, tfm);
+	aead_request_set_assoc(&aead_req.req, &assoc, assoc.length);
+	aead_request_set_crypt(&aead_req.req, ct, &pt,
+			       data_len + IEEE80211_CCMP_MIC_LEN, b_0);
+
+	return crypto_aead_decrypt(&aead_req.req);
 }
 
-
-int ieee80211_aes_ccm_decrypt(struct crypto_cipher *tfm, u8 *scratch,
-			      u8 *cdata, size_t data_len, u8 *mic, u8 *data)
+struct crypto_aead *ieee80211_aes_key_setup_encrypt(const u8 key[])
 {
-	int i, j, last_len, num_blocks;
-	u8 *pos, *cpos, *b, *s_0, *a, *b_0;
-
-	b = scratch;
-	s_0 = scratch + AES_BLOCK_SIZE;
-	a = scratch + 2 * AES_BLOCK_SIZE;
-	b_0 = scratch + 3 * AES_BLOCK_SIZE;
-
-	num_blocks = DIV_ROUND_UP(data_len, AES_BLOCK_SIZE);
-	last_len = data_len % AES_BLOCK_SIZE;
-	aes_ccm_prepare(tfm, scratch, a);
-
-	/* Process payload blocks */
-	cpos = cdata;
-	pos = data;
-	for (j = 1; j <= num_blocks; j++) {
-		int blen = (j == num_blocks && last_len) ?
-			last_len : AES_BLOCK_SIZE;
-
-		/* Decryption followed by authentication */
-		b_0[14] = (j >> 8) & 0xff;
-		b_0[15] = j & 0xff;
-		crypto_cipher_encrypt_one(tfm, b, b_0);
-		for (i = 0; i < blen; i++) {
-			*pos = *cpos++ ^ b[i];
-			a[i] ^= *pos++;
-		}
-		crypto_cipher_encrypt_one(tfm, a, a);
-	}
-
-	for (i = 0; i < IEEE80211_CCMP_MIC_LEN; i++) {
-		if ((mic[i] ^ s_0[i]) != a[i])
-			return -1;
-	}
-
-	return 0;
-}
+	struct crypto_aead *tfm;
+	int err;
 
+	tfm = crypto_alloc_aead("ccm(aes)", 0, CRYPTO_ALG_ASYNC);
+	if (IS_ERR(tfm))
+		return tfm;
 
-struct crypto_cipher *ieee80211_aes_key_setup_encrypt(const u8 key[])
-{
-	struct crypto_cipher *tfm;
+	err = crypto_aead_setkey(tfm, key, WLAN_KEY_LEN_CCMP);
+	if (!err)
+		err = crypto_aead_setauthsize(tfm, IEEE80211_CCMP_MIC_LEN);
+	if (!err)
+		return tfm;
 
-	tfm = crypto_alloc_cipher("aes", 0, CRYPTO_ALG_ASYNC);
-	if (!IS_ERR(tfm))
-		crypto_cipher_setkey(tfm, key, WLAN_KEY_LEN_CCMP);
-
-	return tfm;
+	crypto_free_aead(tfm);
+	return ERR_PTR(err);
 }
 
-
-void ieee80211_aes_key_free(struct crypto_cipher *tfm)
+void ieee80211_aes_key_free(struct crypto_aead *tfm)
 {
-	crypto_free_cipher(tfm);
+	crypto_free_aead(tfm);
 }
diff --git a/net/mac80211/aes_ccm.h b/net/mac80211/aes_ccm.h
index 5b7d744..2c7ab19 100644
--- a/net/mac80211/aes_ccm.h
+++ b/net/mac80211/aes_ccm.h
@@ -12,13 +12,11 @@
 
 #include <linux/crypto.h>
 
-struct crypto_cipher *ieee80211_aes_key_setup_encrypt(const u8 key[]);
-void ieee80211_aes_ccm_encrypt(struct crypto_cipher *tfm, u8 *scratch,
-			       u8 *data, size_t data_len,
-			       u8 *cdata, u8 *mic);
-int ieee80211_aes_ccm_decrypt(struct crypto_cipher *tfm, u8 *scratch,
-			      u8 *cdata, size_t data_len,
-			      u8 *mic, u8 *data);
-void ieee80211_aes_key_free(struct crypto_cipher *tfm);
+struct crypto_aead *ieee80211_aes_key_setup_encrypt(const u8 key[]);
+void ieee80211_aes_ccm_encrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad,
+			       u8 *data, size_t data_len, u8 *mic);
+int ieee80211_aes_ccm_decrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad,
+			      u8 *data, size_t data_len, u8 *mic);
+void ieee80211_aes_key_free(struct crypto_aead *tfm);
 
 #endif /* AES_CCM_H */
diff --git a/net/mac80211/key.h b/net/mac80211/key.h
index 036d57e..aaae0ed 100644
--- a/net/mac80211/key.h
+++ b/net/mac80211/key.h
@@ -83,7 +83,7 @@ struct ieee80211_key {
 			 * Management frames.
 			 */
 			u8 rx_pn[IEEE80211_NUM_TIDS + 1][IEEE80211_CCMP_PN_LEN];
-			struct crypto_cipher *tfm;
+			struct crypto_aead *tfm;
 			u32 replays; /* dot11RSNAStatsCCMPReplays */
 		} ccmp;
 		struct {
diff --git a/net/mac80211/wpa.c b/net/mac80211/wpa.c
index c9edfcb..62dc956 100644
--- a/net/mac80211/wpa.c
+++ b/net/mac80211/wpa.c
@@ -301,22 +301,16 @@ ieee80211_crypto_tkip_decrypt(struct ieee80211_rx_data *rx)
 }
 
 
-static void ccmp_special_blocks(struct sk_buff *skb, u8 *pn, u8 *scratch,
+static void ccmp_special_blocks(struct sk_buff *skb, u8 *pn, u8 *b_0, u8 *aad,
 				int encrypted)
 {
 	__le16 mask_fc;
 	int a4_included, mgmt;
 	u8 qos_tid;
-	u8 *b_0, *aad;
 	u16 data_len, len_a;
 	unsigned int hdrlen;
 	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
 
-	memset(scratch, 0, 6 * AES_BLOCK_SIZE);
-
-	b_0 = scratch + 3 * AES_BLOCK_SIZE;
-	aad = scratch + 4 * AES_BLOCK_SIZE;
-
 	/*
 	 * Mask FC: zero subtype b4 b5 b6 (if not mgmt)
 	 * Retry, PwrMgt, MoreData; set Protected
@@ -342,16 +336,22 @@ static void ccmp_special_blocks(struct sk_buff *skb, u8 *pn, u8 *scratch,
 	if (encrypted)
 		data_len -= IEEE80211_CCMP_MIC_LEN;
 
-	/* First block, b_0 */
-	b_0[0] = 0x59; /* flags: Adata: 1, M: 011, L: 001 */
+	/* In CCM, the initial vectors (IV) used for CTR mode encryption and CBC
+	 * mode authentication are not allowed to collide, yet both are derived
+	 * from this vector b_0. We only set L := 1 here to indicate that the
+	 * data size can be represented in (L+1) bytes, and store the size in
+	 * the top (L+1) bytes. The setting and clearing of other bits that is
+	 * required to derive the two different IVs is handled by the CCM layer.
+	 */
+	b_0[0] = 0x1;
+	put_unaligned_be16(data_len, &b_0[14]);
+
 	/* Nonce: Nonce Flags | A2 | PN
 	 * Nonce Flags: Priority (b0..b3) | Management (b4) | Reserved (b5..b7)
 	 */
 	b_0[1] = qos_tid | (mgmt << 4);
 	memcpy(&b_0[2], hdr->addr2, ETH_ALEN);
 	memcpy(&b_0[8], pn, IEEE80211_CCMP_PN_LEN);
-	/* l(m) */
-	put_unaligned_be16(data_len, &b_0[14]);
 
 	/* AAD (extra authenticate-only data) / masked 802.11 header
 	 * FC | A1 | A2 | A3 | SC | [A4] | [QC] */
@@ -407,7 +407,8 @@ static int ccmp_encrypt_skb(struct ieee80211_tx_data *tx, struct sk_buff *skb)
 	u8 *pos;
 	u8 pn[6];
 	u64 pn64;
-	u8 scratch[6 * AES_BLOCK_SIZE];
+	u8 aad[2 * AES_BLOCK_SIZE];
+	u8 b_0[AES_BLOCK_SIZE];
 
 	if (info->control.hw_key &&
 	    !(info->control.hw_key->flags & IEEE80211_KEY_FLAG_GENERATE_IV) &&
@@ -460,9 +461,9 @@ static int ccmp_encrypt_skb(struct ieee80211_tx_data *tx, struct sk_buff *skb)
 		return 0;
 
 	pos += IEEE80211_CCMP_HDR_LEN;
-	ccmp_special_blocks(skb, pn, scratch, 0);
-	ieee80211_aes_ccm_encrypt(key->u.ccmp.tfm, scratch, pos, len,
-				  pos, skb_put(skb, IEEE80211_CCMP_MIC_LEN));
+	ccmp_special_blocks(skb, pn, b_0, aad, 0);
+	ieee80211_aes_ccm_encrypt(key->u.ccmp.tfm, b_0, aad, pos, len,
+				  skb_put(skb, IEEE80211_CCMP_MIC_LEN));
 
 	return 0;
 }
@@ -525,16 +526,16 @@ ieee80211_crypto_ccmp_decrypt(struct ieee80211_rx_data *rx)
 	}
 
 	if (!(status->flag & RX_FLAG_DECRYPTED)) {
-		u8 scratch[6 * AES_BLOCK_SIZE];
+		u8 aad[2 * AES_BLOCK_SIZE];
+		u8 b_0[AES_BLOCK_SIZE];
 		/* hardware didn't decrypt/verify MIC */
-		ccmp_special_blocks(skb, pn, scratch, 1);
+		ccmp_special_blocks(skb, pn, b_0, aad, 1);
 
 		if (ieee80211_aes_ccm_decrypt(
-			    key->u.ccmp.tfm, scratch,
+			    key->u.ccmp.tfm, b_0, aad,
 			    skb->data + hdrlen + IEEE80211_CCMP_HDR_LEN,
 			    data_len,
-			    skb->data + skb->len - IEEE80211_CCMP_MIC_LEN,
-			    skb->data + hdrlen + IEEE80211_CCMP_HDR_LEN))
+			    skb->data + skb->len - IEEE80211_CCMP_MIC_LEN))
 			return RX_DROP_UNUSABLE;
 	}
 
-- 
1.8.1.2

^ permalink raw reply related

* Re: [PATCH v2 6/6] ipv6: Do route updating for redirect in ndisc layer
From: Duan Jiong @ 2013-10-09  7:00 UTC (permalink / raw)
  To: hannes; +Cc: David Miller, netdev
In-Reply-To: <20131009014324.GA24368@order.stressinduktion.org>

于 2013年10月09日 09:43, Hannes Frederic Sowa 写道:
> Hi Duan!
> 
> On Wed, Sep 18, 2013 at 06:13:37AM +0200, Hannes Frederic Sowa wrote:
>> Especially because redirects also help in the on-link determination (same
>> RFC, section 8), I changed my mind and am still in favour of updating it
>> in the ndisc layer. In my opinion we just have to consider all routing
>> tables and apply the update to every one which carries a valid next hop
>> to the source of the redirect (under consideration of the destination).
>>
>> This will be important if we actually try to get linux to correctly
>> implement the ipv6 subnet model (RFC 5942, Section 4 Rule 1). In that
>> case we are not allowed to assume nodes on-link even if they would match
>> the same prefix as a locally configured address.
> 
> I am playing around with a simple patch which does suppress adding routing
> information for the on-link assumption we currently do in linux.
> 
> Are you intereseted in following up on this? I still do think we should update
> not only the routing table the socket uses but all routing tables which have a
> valid route towards the router which emitted the redirect.
> 

No, thanks, i have got other things on my mind, more important, but i will
pay attention to it.

Thanks,
  Duan.

> I try to check if we actually handle redirect messages when ECMP routes are in
> use correctly.
> 

^ permalink raw reply

* Re: [PATCH net-next] net: fix build errors if ipv6 is disabled
From: David Miller @ 2013-10-09  6:52 UTC (permalink / raw)
  To: eric.dumazet; +Cc: netdev
In-Reply-To: <1381295165.4971.7.camel@edumazet-glaptop.roam.corp.google.com>

From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Tue, 08 Oct 2013 22:06:05 -0700

> +#if IS_ENABLED(CONFIG_IPV6)
> +	if (sk->sk_family == AF_INET6 && !ipv6_addr_any(&sk->sk_v6_rcv_saddr)
> +		sk->sk_userlocks |= SOCK_BINDADDR_LOCK;
> +#endif

Would you mind testing this with ipv6 enabled again? :-/

^ permalink raw reply

* Re: [PATCH] tun: don't look at current when non-blocking
From: Jason Wang @ 2013-10-09  6:25 UTC (permalink / raw)
  To: David Miller, mst; +Cc: netdev, linux-kernel, edumazet, xemul
In-Reply-To: <20131008.154614.1435858706789904414.davem@davemloft.net>

On 10/09/2013 03:46 AM, David Miller wrote:
> From: "Michael S. Tsirkin" <mst@redhat.com>
> Date: Sun, 6 Oct 2013 21:25:12 +0300
>
>> We play with a wait queue even if socket is
>> non blocking. This is an obvious waste.
>> Besides, it will prevent calling the non blocking
>> variant when current is not valid.
>>
>> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> Applied and queued up for -stable, thanks.
> --

Michael, I believe this is just an optimization or a required patch of
your following patches. So no need go for stable?

^ permalink raw reply

* I am sourcing for services of an Oversea Investment Manager (OIM) to manage the sum of US$32Million
From: Mark Williams @ 2013-10-09  6:06 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 22 bytes --]

READ MESSAGE ATTACHED

[-- Attachment #2: Investment Manager.txt --]
[-- Type: application/octet-stream, Size: 1550 bytes --]

OVERSEA INVESTMENT MANAGER


Dear Sir,


I am sourcing for services of an Oversea Investment Manager (OIM) to manage the sum of US$32Million, this amount represent an over invoiced amount of money from a contract that was awarded to an American Oil exploration company in 2007, one year later in 2008, the American company completed the contract and was fully paid by direct Wire transfer for the execution of the contract, leaving the over invoiced sum safely deposited in a special security account managed and monitored by the top officers of the corporation that I represent, this top officer are in charge of the day to day running of accounts and finance section including the auditing department of the corporation and have perfected all documents to back up the payment as to avoid any trace whatsoever, which makes the transaction 100% risk free.


My request is your assistance in receiving this money using a secured account that is able to take this money and thereafter you invest it for a period of 2 years on their behalf. You would be entitled to 25% of the total fund in question, while 5% will be set aside for any sundry expenses incurred by both parties in the course of this transaction. 


As an administrative officer I was mandated to seek your indulgence on this matter, if this is acceptable to you, contact me strictly by markwilliams1@globomail.com stating your full name, address and private phone number Please DO NOT bothers to respond if you are not interested.


Yours Sincerely,


Mr. Mark Williams

^ permalink raw reply

* Powered By Google
From: Google Corporation® @ 2013-10-08 23:25 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 663 bytes --]


Dear Google User,

You have been selected as a winner for using Google services. Find attached
email with more details.

Congratulations,

Matt Brittin.
CEO Google UK.

©2013 Google Corporation®












































The information contained in this email and any attachments is confidential and may be subject to copyright or other intellectual property protection. If you are not the intended recipient, you are not authorized to use or disclose this information, and we request that you notify us by reply mail or telephone and delete the original message from your mail system.

[-- Attachment #2: Google_UK.pdf --]
[-- Type: application/pdf, Size: 189840 bytes --]

^ permalink raw reply

* Re: [PATCH net-next] udp: fix a typo in __udp4_lib_mcast_demux_lookup
From: David Miller @ 2013-10-09  6:01 UTC (permalink / raw)
  To: eric.dumazet; +Cc: shawn.bohrer, netdev, tomk, sbohrer
In-Reply-To: <1381294049.4971.3.camel@edumazet-glaptop.roam.corp.google.com>

From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Tue, 08 Oct 2013 21:47:29 -0700

> From: Eric Dumazet <edumazet@google.com>
> 
> At this point sk might contain garbage.
> 
> Signed-off-by: Eric Dumazet <edumazet@google.com>

Applied.

^ permalink raw reply

* Re: [PATCH] net: sh_eth: Fix RX packets errors on R8A7740
From: Nguyen Hong Ky @ 2013-10-09  5:38 UTC (permalink / raw)
  To: Simon Horman; +Cc: David S. Miller, netdev, Ryusuke Sakato, Sergei Shtylyov
In-Reply-To: <20131009052617.GC16885@verge.net.au>

On Wed, Oct 9, 2013 at 2:26 PM, Simon Horman <horms@verge.net.au> wrote:
> On Wed, Oct 09, 2013 at 01:28:26PM +0900, Simon Horman wrote:
>> On Mon, Oct 07, 2013 at 03:29:25PM +0900, Nguyen Hong Ky wrote:
>> > This patch will fix RX packets errors when receiving big size
>> > of data by set bit RNC = 1.
>> >
>> > RNC - Receive Enable Control
>> >
>> > 0: Upon completion of reception of one frame, the E-DMAC writes
>> > the receive status to the descriptor and clears the RR bit in
>> > EDRRR to 0.
>> >
>> > 1: Upon completion of reception of one frame, the E-DMAC writes
>> > (writes back) the receive status to the descriptor. In addition,
>> > the E-DMAC reads the next descriptor and prepares for reception
>> > of the next frame.
>> >
>> > In addition, for get more stable when receiving packets, I set
>> > maximum size for the transmit/receive FIFO and inserts padding
>> > in receive data.
>> >
>> > Signed-off-by: Nguyen Hong Ky <nh-ky@jinso.co.jp>
>>
>> I realise that this patch has been applied but regardless
>> I would like to acknowledge that it resolve a problem that
>> I observed this afternoon.
>>
>> Without this patch I see the following on the console, many times:
>>
>> net eth0: Receive FIFO Overflow
>>
>> With this patch I do not see the warning message at all.
>
> Scratch that, I am still seeing the messages with this patch applied.
>

Would you please confirm that it was patched in below function:

static struct sh_eth_cpu_data r8a7740_data = {...}

Thanks for your help,
Nguyen Hong Ky

^ permalink raw reply

* Re: [PATCH] net: sh_eth: Fix RX packets errors on R8A7740
From: Simon Horman @ 2013-10-09  5:26 UTC (permalink / raw)
  To: Nguyen Hong Ky; +Cc: David S. Miller, netdev, Ryusuke Sakato, Sergei Shtylyov
In-Reply-To: <20131009042826.GB16885@verge.net.au>

On Wed, Oct 09, 2013 at 01:28:26PM +0900, Simon Horman wrote:
> On Mon, Oct 07, 2013 at 03:29:25PM +0900, Nguyen Hong Ky wrote:
> > This patch will fix RX packets errors when receiving big size
> > of data by set bit RNC = 1.
> > 
> > RNC - Receive Enable Control
> > 
> > 0: Upon completion of reception of one frame, the E-DMAC writes
> > the receive status to the descriptor and clears the RR bit in
> > EDRRR to 0.
> > 
> > 1: Upon completion of reception of one frame, the E-DMAC writes
> > (writes back) the receive status to the descriptor. In addition,
> > the E-DMAC reads the next descriptor and prepares for reception
> > of the next frame.
> > 
> > In addition, for get more stable when receiving packets, I set
> > maximum size for the transmit/receive FIFO and inserts padding
> > in receive data.
> > 
> > Signed-off-by: Nguyen Hong Ky <nh-ky@jinso.co.jp>
> 
> I realise that this patch has been applied but regardless
> I would like to acknowledge that it resolve a problem that
> I observed this afternoon.
> 
> Without this patch I see the following on the console, many times:
> 
> net eth0: Receive FIFO Overflow
> 
> With this patch I do not see the warning message at all.

Scratch that, I am still seeing the messages with this patch applied.

^ permalink raw reply

* Re: [PATCH net-next 2/2] ipv6: make lookups simpler and faster
From: Eric Dumazet @ 2013-10-09  5:11 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <20131009.000750.1849276529051781060.davem@davemloft.net>

On Wed, 2013-10-09 at 00:07 -0400, David Miller wrote:
> Eric, I had to fix up l2tp_core.c to accomodate these changes due to
> something that came in during the net --> net-next merge, please
> double check my work.

Your changes in l2tp_core.c looks fine to me, thanks !

^ permalink raw reply

* [PATCH net-next] net: fix build errors if ipv6 is disabled
From: Eric Dumazet @ 2013-10-09  5:06 UTC (permalink / raw)
  To: David Miller; +Cc: netdev

From: Eric Dumazet <edumazet@google.com>

CONFIG_IPV6=n is still a valid choice ;)

It appears we can remove dead code.

Reported-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
---
 include/net/ip6_checksum.h |    2 ++
 net/ipv4/ping.c            |    8 +++++---
 net/ipv4/tcp_metrics.c     |    4 ++++
 net/sunrpc/svcsock.c       |    2 ++
 security/lsm_audit.c       |    2 ++
 5 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/include/net/ip6_checksum.h b/include/net/ip6_checksum.h
index 1944406..9e3c540 100644
--- a/include/net/ip6_checksum.h
+++ b/include/net/ip6_checksum.h
@@ -66,12 +66,14 @@ static inline void __tcp_v6_send_check(struct sk_buff *skb,
 	}
 }
 
+#if IS_ENABLED(CONFIG_IPV6)
 static inline void tcp_v6_send_check(struct sock *sk, struct sk_buff *skb)
 {
 	struct ipv6_pinfo *np = inet6_sk(sk);
 
 	__tcp_v6_send_check(skb, &np->saddr, &sk->sk_v6_daddr);
 }
+#endif
 
 int udp6_csum_init(struct sk_buff *skb, struct udphdr *uh, int proto);
 #endif
diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
index ccefc07..a10988a 100644
--- a/net/ipv4/ping.c
+++ b/net/ipv4/ping.c
@@ -415,10 +415,12 @@ int ping_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len)
 		 (int)sk->sk_bound_dev_if);
 
 	err = 0;
-	if ((sk->sk_family == AF_INET && isk->inet_rcv_saddr) ||
-	    (sk->sk_family == AF_INET6 &&
-	     !ipv6_addr_any(&sk->sk_v6_rcv_saddr)))
+	if (sk->sk_family == AF_INET && isk->inet_rcv_saddr)
 		sk->sk_userlocks |= SOCK_BINDADDR_LOCK;
+#if IS_ENABLED(CONFIG_IPV6)
+	if (sk->sk_family == AF_INET6 && !ipv6_addr_any(&sk->sk_v6_rcv_saddr)
+		sk->sk_userlocks |= SOCK_BINDADDR_LOCK;
+#endif
 
 	if (snum)
 		sk->sk_userlocks |= SOCK_BINDPORT_LOCK;
diff --git a/net/ipv4/tcp_metrics.c b/net/ipv4/tcp_metrics.c
index 27535fd..8fcc2cb 100644
--- a/net/ipv4/tcp_metrics.c
+++ b/net/ipv4/tcp_metrics.c
@@ -251,10 +251,12 @@ static struct tcp_metrics_block *__tcp_get_metrics_tw(struct inet_timewait_sock
 		addr.addr.a4 = tw->tw_daddr;
 		hash = (__force unsigned int) addr.addr.a4;
 		break;
+#if IS_ENABLED(CONFIG_IPV6)
 	case AF_INET6:
 		*(struct in6_addr *)addr.addr.a6 = tw->tw_v6_daddr;
 		hash = ipv6_addr_hash(&tw->tw_v6_daddr);
 		break;
+#endif
 	default:
 		return NULL;
 	}
@@ -286,10 +288,12 @@ static struct tcp_metrics_block *tcp_get_metrics(struct sock *sk,
 		addr.addr.a4 = inet_sk(sk)->inet_daddr;
 		hash = (__force unsigned int) addr.addr.a4;
 		break;
+#if IS_ENABLED(CONFIG_IPV6)
 	case AF_INET6:
 		*(struct in6_addr *)addr.addr.a6 = sk->sk_v6_daddr;
 		hash = ipv6_addr_hash(&sk->sk_v6_daddr);
 		break;
+#endif
 	default:
 		return NULL;
 	}
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index 0045c7c..b6e59f0 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -291,12 +291,14 @@ static int svc_one_sock_name(struct svc_sock *svsk, char *buf, int remaining)
 				&inet_sk(sk)->inet_rcv_saddr,
 				inet_sk(sk)->inet_num);
 		break;
+#if IS_ENABLED(CONFIG_IPV6)
 	case PF_INET6:
 		len = snprintf(buf, remaining, "ipv6 %s %pI6 %d\n",
 				proto_name,
 				&sk->sk_v6_rcv_saddr,
 				inet_sk(sk)->inet_num);
 		break;
+#endif
 	default:
 		len = snprintf(buf, remaining, "*unknown-%d*\n",
 				sk->sk_family);
diff --git a/security/lsm_audit.c b/security/lsm_audit.c
index 80554fc..234bc2a 100644
--- a/security/lsm_audit.c
+++ b/security/lsm_audit.c
@@ -302,6 +302,7 @@ static void dump_common_audit_data(struct audit_buffer *ab,
 						"faddr", "fport");
 				break;
 			}
+#if IS_ENABLED(CONFIG_IPV6)
 			case AF_INET6: {
 				struct inet_sock *inet = inet_sk(sk);
 
@@ -313,6 +314,7 @@ static void dump_common_audit_data(struct audit_buffer *ab,
 						"faddr", "fport");
 				break;
 			}
+#endif
 			case AF_UNIX:
 				u = unix_sk(sk);
 				if (u->path.dentry) {

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox