qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] a7278b: net/vmxnet3: Refine l2 header validat


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] a7278b: net/vmxnet3: Refine l2 header validation
Date: Mon, 12 Oct 2015 08:00:09 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: a7278b36fcab9af469563bd7b9dadebe2ae25e48
      
https://github.com/qemu/qemu/commit/a7278b36fcab9af469563bd7b9dadebe2ae25e48
  Author: Dana Rubin <address@hidden>
  Date:   2015-10-12 (Mon, 12 Oct 2015)

  Changed paths:
    M hw/net/vmxnet3.c
    M hw/net/vmxnet_tx_pkt.c

  Log Message:
  -----------
  net/vmxnet3: Refine l2 header validation

Validation of l2 header length assumed minimal packet size as
eth_header + 2 * vlan_header regardless of the actual protocol.

This caused crash for valid non-IP packets shorter than 22 bytes, as
'tx_pkt->packet_type' hasn't been assigned for such packets, and
'vmxnet3_on_tx_done_update_stats()' expects it to be properly set.

Refine header length validation in 'vmxnet_tx_pkt_parse_headers'.
Check its return value during packet processing flow.

As a side effect, in case IPv4 and IPv6 header validation failure,
corrupt packets will be dropped.

Signed-off-by: Dana Rubin <address@hidden>
Signed-off-by: Shmulik Ladkani <address@hidden>
Signed-off-by: Jason Wang <address@hidden>


  Commit: c6048f849c7e3f009786df76206e895a69de032c
      
https://github.com/qemu/qemu/commit/c6048f849c7e3f009786df76206e895a69de032c
  Author: Shmulik Ladkani <address@hidden>
  Date:   2015-10-12 (Mon, 12 Oct 2015)

  Changed paths:
    M hw/net/vmxnet3.c

  Log Message:
  -----------
  vmxnet3: Support reading IMR registers on bar0

Instead of asserting, return the actual IMR register value.
This is aligned with what's returned on ESXi.

Signed-off-by: Shmulik Ladkani <address@hidden>
Tested-by: Dana Rubin <address@hidden>
Signed-off-by: Jason Wang <address@hidden>


  Commit: 8304402033e8dbe8e379017d51ed1dd8344f1dce
      
https://github.com/qemu/qemu/commit/8304402033e8dbe8e379017d51ed1dd8344f1dce
  Author: Jason Wang <address@hidden>
  Date:   2015-10-12 (Mon, 12 Oct 2015)

  Changed paths:
    M hw/net/e1000.c
    M qdev-monitor.c

  Log Message:
  -----------
  e1000: use alias for default model

Instead of duplicating the "e1000-82540em" device model as "e1000",
make the latter an alias for the former.

Cc: Markus Armbruster <address@hidden>
Signed-off-by: Jason Wang <address@hidden
Reviewed-by: Markus Armbruster <address@hidden>


  Commit: d62241eb6da9bd2517f07b3219ba4208b90b4e0d
      
https://github.com/qemu/qemu/commit/d62241eb6da9bd2517f07b3219ba4208b90b4e0d
  Author: Shmulik Ladkani <address@hidden>
  Date:   2015-10-12 (Mon, 12 Oct 2015)

  Changed paths:
    M hw/net/vmxnet3.c
    M hw/net/vmxnet3.h

  Log Message:
  -----------
  vmxnet3: Add support for VMXNET3_CMD_GET_ADAPTIVE_RING_INFO command

Some drivers (e.g. vmware-tools) issue the VMXNET3_CMD_GET_ADAPTIVE_RING_INFO
command.

Currently, due to lack of support, a bogus value (-1) is returned.

Support this command, returning the "adaptive-ring disabled" flag.

Signed-off-by: Shmulik Ladkani <address@hidden>
Signed-off-by: Jason Wang <address@hidden>


  Commit: 9abce56d7b319b0c78b487720d128706272e0a0c
      
https://github.com/qemu/qemu/commit/9abce56d7b319b0c78b487720d128706272e0a0c
  Author: Yang Hongyang <address@hidden>
  Date:   2015-10-12 (Mon, 12 Oct 2015)

  Changed paths:
    M vl.c

  Log Message:
  -----------
  vl.c: init delayed object after net_init_clients

Init delayed object after net_init_clients, because netfilters need
to be initialized after net clients initialized.

Signed-off-by: Yang Hongyang <address@hidden>
Signed-off-by: Jason Wang <address@hidden>


  Commit: fdccce4596218e49ca4d0f5d4b3f0c453bd99ba0
      
https://github.com/qemu/qemu/commit/fdccce4596218e49ca4d0f5d4b3f0c453bd99ba0
  Author: Yang Hongyang <address@hidden>
  Date:   2015-10-12 (Mon, 12 Oct 2015)

  Changed paths:
    A include/net/filter.h
    M include/net/net.h
    M include/qemu/typedefs.h
    M net/Makefile.objs
    A net/filter.c
    M net/net.c
    M qapi-schema.json

  Log Message:
  -----------
  init/cleanup of netfilter object

Add a netfilter object based on QOM.

A netfilter is attached to a netdev, captures all network packets
that pass through the netdev. When we delete the netdev, we also
delete the netfilter object attached to it, because if the netdev is
removed, the filter which attached to it is useless.

Signed-off-by: Yang Hongyang <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Jason Wang <address@hidden>


  Commit: e64c770d1fa859bd8ee583d339b085fe345ac02b
      
https://github.com/qemu/qemu/commit/e64c770d1fa859bd8ee583d339b085fe345ac02b
  Author: Yang Hongyang <address@hidden>
  Date:   2015-10-12 (Mon, 12 Oct 2015)

  Changed paths:
    M include/net/filter.h
    M net/filter.c
    M net/net.c

  Log Message:
  -----------
  netfilter: hook packets before net queue send

Capture packets that will be sent.

Signed-off-by: Yang Hongyang <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Jason Wang <address@hidden>


  Commit: fefe2a78abde932e0f340b21bded2c86def1d242
      
https://github.com/qemu/qemu/commit/fefe2a78abde932e0f340b21bded2c86def1d242
  Author: Yang Hongyang <address@hidden>
  Date:   2015-10-12 (Mon, 12 Oct 2015)

  Changed paths:
    M include/net/net.h
    M net/net.c
    M net/queue.c

  Log Message:
  -----------
  net: merge qemu_deliver_packet and qemu_deliver_packet_iov

qemu_deliver_packet_iov already have the compat delivery, we
can drop qemu_deliver_packet.

Signed-off-by: Yang Hongyang <address@hidden>
Signed-off-by: Jason Wang <address@hidden>


  Commit: 3e033a46a7e39ea31e15f1b53402df990977115a
      
https://github.com/qemu/qemu/commit/3e033a46a7e39ea31e15f1b53402df990977115a
  Author: Yang Hongyang <address@hidden>
  Date:   2015-10-12 (Mon, 12 Oct 2015)

  Changed paths:
    M include/net/queue.h
    M net/net.c
    M net/queue.c

  Log Message:
  -----------
  net/queue: introduce NetQueueDeliverFunc

net/queue.c has logic to send/queue/flush packets but a
qemu_deliver_packet_iov() call is hardcoded. Abstract this
func so that we can use our own deliver function in netfilter.

Signed-off-by: Yang Hongyang <address@hidden>
Cc: Stefan Hajnoczi <address@hidden>
Signed-off-by: Jason Wang <address@hidden>


  Commit: 7ef7bc8586fb0d41742a896b532c7afa2bbb7f84
      
https://github.com/qemu/qemu/commit/7ef7bc8586fb0d41742a896b532c7afa2bbb7f84
  Author: Yang Hongyang <address@hidden>
  Date:   2015-10-12 (Mon, 12 Oct 2015)

  Changed paths:
    M include/net/filter.h
    M net/filter.c

  Log Message:
  -----------
  netfilter: add an API to pass the packet to next filter

add an API qemu_netfilter_pass_to_next() to pass the packet
to next filter.

Signed-off-by: Yang Hongyang <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Jason Wang <address@hidden>


  Commit: a4960f52e7f402a4b7402ace204283de7b9d4879
      
https://github.com/qemu/qemu/commit/a4960f52e7f402a4b7402ace204283de7b9d4879
  Author: Yang Hongyang <address@hidden>
  Date:   2015-10-12 (Mon, 12 Oct 2015)

  Changed paths:
    M include/net/filter.h
    M net/filter.c
    M net/net.c

  Log Message:
  -----------
  netfilter: print filter info associate with the netdev

When execute "info network", print filter info also.
add a info_str member to NetFilterState, store specific filters
info.

Signed-off-by: Yang Hongyang <address@hidden>
Signed-off-by: Jason Wang <address@hidden>


  Commit: b68c7f76926dee3f234ccee88f3167b640d9318e
      
https://github.com/qemu/qemu/commit/b68c7f76926dee3f234ccee88f3167b640d9318e
  Author: Yang Hongyang <address@hidden>
  Date:   2015-10-12 (Mon, 12 Oct 2015)

  Changed paths:
    M include/net/queue.h
    M net/queue.c

  Log Message:
  -----------
  net/queue: export qemu_net_queue_append_iov

This will be used by buffer filter implementation later to
queue packets.

Signed-off-by: Yang Hongyang <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Jason Wang <address@hidden>


  Commit: 7dbb11c84f25e20301b47a77102db00d68a2c4a4
      
https://github.com/qemu/qemu/commit/7dbb11c84f25e20301b47a77102db00d68a2c4a4
  Author: Yang Hongyang <address@hidden>
  Date:   2015-10-12 (Mon, 12 Oct 2015)

  Changed paths:
    M net/Makefile.objs
    A net/filter-buffer.c
    M qemu-options.hx
    M vl.c

  Log Message:
  -----------
  netfilter: add a netbuffer filter

This filter is to buffer/release packets. Can be used when using
MicroCheckpointing or other Remus like VM FT solutions.
You can also use it to crudely simulate network delay.  Doesn't
actually delay individual packets, but batches them together, which is
a delay of sorts.

Usage:
 -netdev tap,id=bn0
 -object filter-buffer,id=f0,netdev=bn0,queue=rx,interval=1000

NOTE:
 Interval is in microseconds, it can't be omitted currently, and can't be 0.

Signed-off-by: Yang Hongyang <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Jason Wang <address@hidden>


  Commit: 89b1273742f45c30927df203532fca0d9a3e1af7
      
https://github.com/qemu/qemu/commit/89b1273742f45c30927df203532fca0d9a3e1af7
  Author: Yang Hongyang <address@hidden>
  Date:   2015-10-12 (Mon, 12 Oct 2015)

  Changed paths:
    M tests/.gitignore
    M tests/Makefile
    A tests/test-netfilter.c

  Log Message:
  -----------
  tests: add test cases for netfilter object

Using qtest qmp interface to implement following cases:
1) add/remove netfilter
2) add a netfilter then delete the netdev
3) add/remove more than one netfilters
4) add more than one netfilters and then delete the netdev

Signed-off-by: Yang Hongyang <address@hidden>
Signed-off-by: Jason Wang <address@hidden>


  Commit: 0bf224d5da41967a775b328234cda2d19f303908
      
https://github.com/qemu/qemu/commit/0bf224d5da41967a775b328234cda2d19f303908
  Author: Peter Maydell <address@hidden>
  Date:   2015-10-12 (Mon, 12 Oct 2015)

  Changed paths:
    M hw/net/e1000.c
    M hw/net/vmxnet3.c
    M hw/net/vmxnet3.h
    M hw/net/vmxnet_tx_pkt.c
    A include/net/filter.h
    M include/net/net.h
    M include/net/queue.h
    M include/qemu/typedefs.h
    M net/Makefile.objs
    A net/filter-buffer.c
    A net/filter.c
    M net/net.c
    M net/queue.c
    M qapi-schema.json
    M qdev-monitor.c
    M qemu-options.hx
    M tests/.gitignore
    M tests/Makefile
    A tests/test-netfilter.c
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/jasowang/tags/net-pull-request' into 
staging

# gpg: Signature made Mon 12 Oct 2015 08:56:47 BST using RSA key ID 398D6211
# gpg: Good signature from "Jason Wang (Jason Wang on RedHat) <address@hidden>"
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: 215D 46F4 8246 689E C77F  3562 EF04 965B 398D 6211

* remotes/jasowang/tags/net-pull-request:
  tests: add test cases for netfilter object
  netfilter: add a netbuffer filter
  net/queue: export qemu_net_queue_append_iov
  netfilter: print filter info associate with the netdev
  netfilter: add an API to pass the packet to next filter
  net/queue: introduce NetQueueDeliverFunc
  net: merge qemu_deliver_packet and qemu_deliver_packet_iov
  netfilter: hook packets before net queue send
  init/cleanup of netfilter object
  vl.c: init delayed object after net_init_clients
  vmxnet3: Add support for VMXNET3_CMD_GET_ADAPTIVE_RING_INFO command
  e1000: use alias for default model
  vmxnet3: Support reading IMR registers on bar0
  net/vmxnet3: Refine l2 header validation

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/768492239014...0bf224d5da41

reply via email to

[Prev in Thread] Current Thread [Next in Thread]