]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[rndis] Add rndis_rx_err()
authorMichael Brown <mcb30@ipxe.org>
Wed, 11 Feb 2015 17:26:51 +0000 (17:26 +0000)
committerMichael Brown <mcb30@ipxe.org>
Wed, 11 Feb 2015 17:26:51 +0000 (17:26 +0000)
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/include/ipxe/rndis.h
src/net/rndis.c

index b7c9c0648b76eed0a88913fc8bc3ebdd7ad287fc..bc077f2e2fbcd85f7d00be2d41226595ad03d94c 100644 (file)
@@ -347,6 +347,8 @@ extern void rndis_tx_complete_err ( struct rndis_device *rndis,
 extern int rndis_tx_defer ( struct rndis_device *rndis,
                            struct io_buffer *iobuf );
 extern void rndis_rx ( struct rndis_device *rndis, struct io_buffer *iobuf );
+extern void rndis_rx_err ( struct rndis_device *rndis, struct io_buffer *iobuf,
+                          int rc );
 
 extern struct rndis_device * alloc_rndis ( size_t priv_len );
 extern int register_rndis ( struct rndis_device *rndis );
index cd710a49c3af484bbd48cf622eceff3b8f1b601c..48447f1173e1a0ed0ad9dcd3eb3a241a63a7a3c5 100644 (file)
@@ -795,6 +795,21 @@ void rndis_rx ( struct rndis_device *rndis, struct io_buffer *iobuf ) {
        netdev_rx_err ( netdev, iob_disown ( iobuf ), rc );
 }
 
+/**
+ * Discard packet from underlying transport layer
+ *
+ * @v rndis            RNDIS device
+ * @v iobuf            I/O buffer
+ * @v rc               Packet status code
+ */
+void rndis_rx_err ( struct rndis_device *rndis, struct io_buffer *iobuf,
+                   int rc ) {
+       struct net_device *netdev = rndis->netdev;
+
+       /* Record error */
+       netdev_rx_err ( netdev, iob_disown ( iobuf ), rc );
+}
+
 /**
  * Set receive filter
  *