You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by GitBox <gi...@apache.org> on 2021/06/15 14:55:02 UTC

[GitHub] [incubator-nuttx] anchao opened a new pull request #3926: net/inet: add support of FIONREAD

anchao opened a new pull request #3926:
URL: https://github.com/apache/incubator-nuttx/pull/3926


   ## Summary
   
   net/inet: add support of FIONREAD
   mm/iob: add iob_get_queue_size() helper
   
   ## Impact
   
   FIONREAD  int *argp
          Get the number of bytes in the input buffer.
   
   ## Testing
   
   ioctl(socketfd, FIONREAD, &size)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] xiaoxiang781216 merged pull request #3926: net/inet: add support of FIONREAD

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 merged pull request #3926:
URL: https://github.com/apache/incubator-nuttx/pull/3926


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] yamt commented on a change in pull request #3926: net/inet: add support of FIONREAD

Posted by GitBox <gi...@apache.org>.
yamt commented on a change in pull request #3926:
URL: https://github.com/apache/incubator-nuttx/pull/3926#discussion_r663664164



##########
File path: net/tcp/tcp_ioctl.c
##########
@@ -0,0 +1,74 @@
+/****************************************************************************
+ * net/tcp/tcp_ioctl.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <debug.h>
+#include <errno.h>
+
+#include <net/if.h>
+
+#include <nuttx/fs/ioctl.h>
+#include <nuttx/mm/iob.h>
+
+#include "tcp/tcp.h"
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: tcp_ioctl
+ *
+ * Description:
+ *   This function performs tcp specific ioctl() operations.
+ *
+ * Parameters:
+ *   conn     The TCP connection of interest
+ *   cmd      The ioctl command
+ *   arg      The argument of the ioctl cmd
+ *   arglen   The length of 'arg'
+ *
+ ****************************************************************************/
+
+int tcp_ioctl(FAR struct tcp_conn_s *conn,
+              int cmd, FAR void *arg, size_t arglen)
+{
+  int ret = OK;
+
+  switch (cmd)
+    {
+      case FIONREAD:
+        *(FAR int *)((uintptr_t)arg) =
+          iob_get_queue_size(&conn->readahead);

Review comment:
       i removed it because 1. it was unnecessary overhead and 2. causing confusing flow control behavior.
   i can't comment on your local optimizations because i can't read it.
   




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] yamt commented on a change in pull request #3926: net/inet: add support of FIONREAD

Posted by GitBox <gi...@apache.org>.
yamt commented on a change in pull request #3926:
URL: https://github.com/apache/incubator-nuttx/pull/3926#discussion_r663700959



##########
File path: net/tcp/tcp_ioctl.c
##########
@@ -0,0 +1,74 @@
+/****************************************************************************
+ * net/tcp/tcp_ioctl.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <debug.h>
+#include <errno.h>
+
+#include <net/if.h>
+
+#include <nuttx/fs/ioctl.h>
+#include <nuttx/mm/iob.h>
+
+#include "tcp/tcp.h"
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: tcp_ioctl
+ *
+ * Description:
+ *   This function performs tcp specific ioctl() operations.
+ *
+ * Parameters:
+ *   conn     The TCP connection of interest
+ *   cmd      The ioctl command
+ *   arg      The argument of the ioctl cmd
+ *   arglen   The length of 'arg'
+ *
+ ****************************************************************************/
+
+int tcp_ioctl(FAR struct tcp_conn_s *conn,
+              int cmd, FAR void *arg, size_t arglen)
+{
+  int ret = OK;
+
+  switch (cmd)
+    {
+      case FIONREAD:
+        *(FAR int *)((uintptr_t)arg) =
+          iob_get_queue_size(&conn->readahead);

Review comment:
       > I'm a little worried here about the right edge is moved inside a package, will there be other problems? According to the previous strategy, the whole packet will be discarded if unable to allocate the new iob buffer.
   
   i don't expect major issues as it's what other tcp stacks sometimes do.
   but i can understand your concern.
   otoh, dropping more data would increase the chance of stalls when iobs are scarce.
   




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] anchao commented on a change in pull request #3926: net/inet: add support of FIONREAD

Posted by GitBox <gi...@apache.org>.
anchao commented on a change in pull request #3926:
URL: https://github.com/apache/incubator-nuttx/pull/3926#discussion_r663685804



##########
File path: net/tcp/tcp_ioctl.c
##########
@@ -0,0 +1,74 @@
+/****************************************************************************
+ * net/tcp/tcp_ioctl.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <debug.h>
+#include <errno.h>
+
+#include <net/if.h>
+
+#include <nuttx/fs/ioctl.h>
+#include <nuttx/mm/iob.h>
+
+#include "tcp/tcp.h"
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: tcp_ioctl
+ *
+ * Description:
+ *   This function performs tcp specific ioctl() operations.
+ *
+ * Parameters:
+ *   conn     The TCP connection of interest
+ *   cmd      The ioctl command
+ *   arg      The argument of the ioctl cmd
+ *   arglen   The length of 'arg'
+ *
+ ****************************************************************************/
+
+int tcp_ioctl(FAR struct tcp_conn_s *conn,
+              int cmd, FAR void *arg, size_t arglen)
+{
+  int ret = OK;
+
+  switch (cmd)
+    {
+      case FIONREAD:
+        *(FAR int *)((uintptr_t)arg) =
+          iob_get_queue_size(&conn->readahead);

Review comment:
       > if iob_trycopyin failed to allocate necessary iobs, right.
   
   I'm a little worried here about the right edge is moved inside a package, will there be other problems? According to the previous strategy, the whole packet will be discarded if unable to allocate the new iob buffer.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] yamt commented on a change in pull request #3926: net/inet: add support of FIONREAD

Posted by GitBox <gi...@apache.org>.
yamt commented on a change in pull request #3926:
URL: https://github.com/apache/incubator-nuttx/pull/3926#discussion_r663666964



##########
File path: net/tcp/tcp_ioctl.c
##########
@@ -0,0 +1,74 @@
+/****************************************************************************
+ * net/tcp/tcp_ioctl.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <debug.h>
+#include <errno.h>
+
+#include <net/if.h>
+
+#include <nuttx/fs/ioctl.h>
+#include <nuttx/mm/iob.h>
+
+#include "tcp/tcp.h"
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: tcp_ioctl
+ *
+ * Description:
+ *   This function performs tcp specific ioctl() operations.
+ *
+ * Parameters:
+ *   conn     The TCP connection of interest
+ *   cmd      The ioctl command
+ *   arg      The argument of the ioctl cmd
+ *   arglen   The length of 'arg'
+ *
+ ****************************************************************************/
+
+int tcp_ioctl(FAR struct tcp_conn_s *conn,
+              int cmd, FAR void *arg, size_t arglen)
+{
+  int ret = OK;
+
+  switch (cmd)
+    {
+      case FIONREAD:
+        *(FAR int *)((uintptr_t)arg) =
+          iob_get_queue_size(&conn->readahead);

Review comment:
       if iob_trycopyin failed to allocate necessary iobs, right.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] anchao commented on a change in pull request #3926: net/inet: add support of FIONREAD

Posted by GitBox <gi...@apache.org>.
anchao commented on a change in pull request #3926:
URL: https://github.com/apache/incubator-nuttx/pull/3926#discussion_r663736701



##########
File path: net/tcp/tcp_ioctl.c
##########
@@ -0,0 +1,74 @@
+/****************************************************************************
+ * net/tcp/tcp_ioctl.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <debug.h>
+#include <errno.h>
+
+#include <net/if.h>
+
+#include <nuttx/fs/ioctl.h>
+#include <nuttx/mm/iob.h>
+
+#include "tcp/tcp.h"
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: tcp_ioctl
+ *
+ * Description:
+ *   This function performs tcp specific ioctl() operations.
+ *
+ * Parameters:
+ *   conn     The TCP connection of interest
+ *   cmd      The ioctl command
+ *   arg      The argument of the ioctl cmd
+ *   arglen   The length of 'arg'
+ *
+ ****************************************************************************/
+
+int tcp_ioctl(FAR struct tcp_conn_s *conn,
+              int cmd, FAR void *arg, size_t arglen)
+{
+  int ret = OK;
+
+  switch (cmd)
+    {
+      case FIONREAD:
+        *(FAR int *)((uintptr_t)arg) =
+          iob_get_queue_size(&conn->readahead);

Review comment:
       OK, let's keep move on




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] anchao commented on pull request #3926: net/inet: add support of FIONREAD

Posted by GitBox <gi...@apache.org>.
anchao commented on pull request #3926:
URL: https://github.com/apache/incubator-nuttx/pull/3926#issuecomment-873929357


   @yamt san, please review again,thank you


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] anchao commented on a change in pull request #3926: net/inet: add support of FIONREAD

Posted by GitBox <gi...@apache.org>.
anchao commented on a change in pull request #3926:
URL: https://github.com/apache/incubator-nuttx/pull/3926#discussion_r663736701



##########
File path: net/tcp/tcp_ioctl.c
##########
@@ -0,0 +1,74 @@
+/****************************************************************************
+ * net/tcp/tcp_ioctl.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <debug.h>
+#include <errno.h>
+
+#include <net/if.h>
+
+#include <nuttx/fs/ioctl.h>
+#include <nuttx/mm/iob.h>
+
+#include "tcp/tcp.h"
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: tcp_ioctl
+ *
+ * Description:
+ *   This function performs tcp specific ioctl() operations.
+ *
+ * Parameters:
+ *   conn     The TCP connection of interest
+ *   cmd      The ioctl command
+ *   arg      The argument of the ioctl cmd
+ *   arglen   The length of 'arg'
+ *
+ ****************************************************************************/
+
+int tcp_ioctl(FAR struct tcp_conn_s *conn,
+              int cmd, FAR void *arg, size_t arglen)
+{
+  int ret = OK;
+
+  switch (cmd)
+    {
+      case FIONREAD:
+        *(FAR int *)((uintptr_t)arg) =
+          iob_get_queue_size(&conn->readahead);

Review comment:
       OK, let's keep move on




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] anchao commented on a change in pull request #3926: net/inet: add support of FIONREAD

Posted by GitBox <gi...@apache.org>.
anchao commented on a change in pull request #3926:
URL: https://github.com/apache/incubator-nuttx/pull/3926#discussion_r663685666



##########
File path: net/tcp/tcp_ioctl.c
##########
@@ -0,0 +1,74 @@
+/****************************************************************************
+ * net/tcp/tcp_ioctl.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <debug.h>
+#include <errno.h>
+
+#include <net/if.h>
+
+#include <nuttx/fs/ioctl.h>
+#include <nuttx/mm/iob.h>
+
+#include "tcp/tcp.h"
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: tcp_ioctl
+ *
+ * Description:
+ *   This function performs tcp specific ioctl() operations.
+ *
+ * Parameters:
+ *   conn     The TCP connection of interest
+ *   cmd      The ioctl command
+ *   arg      The argument of the ioctl cmd
+ *   arglen   The length of 'arg'
+ *
+ ****************************************************************************/
+
+int tcp_ioctl(FAR struct tcp_conn_s *conn,
+              int cmd, FAR void *arg, size_t arglen)
+{
+  int ret = OK;
+
+  switch (cmd)
+    {
+      case FIONREAD:
+        *(FAR int *)((uintptr_t)arg) =
+          iob_get_queue_size(&conn->readahead);

Review comment:
       > i removed it because 1. it was unnecessary overhead and 2. causing confusing flow control behavior.
   > i can't comment on your local optimizations because i can't read it.
   
   I will raise the PR recently. Are you still doing network optimization recently? For which functions or options?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] anchao commented on a change in pull request #3926: net/inet: add support of FIONREAD

Posted by GitBox <gi...@apache.org>.
anchao commented on a change in pull request #3926:
URL: https://github.com/apache/incubator-nuttx/pull/3926#discussion_r663659092



##########
File path: net/tcp/tcp_ioctl.c
##########
@@ -0,0 +1,74 @@
+/****************************************************************************
+ * net/tcp/tcp_ioctl.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <debug.h>
+#include <errno.h>
+
+#include <net/if.h>
+
+#include <nuttx/fs/ioctl.h>
+#include <nuttx/mm/iob.h>
+
+#include "tcp/tcp.h"
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: tcp_ioctl
+ *
+ * Description:
+ *   This function performs tcp specific ioctl() operations.
+ *
+ * Parameters:
+ *   conn     The TCP connection of interest
+ *   cmd      The ioctl command
+ *   arg      The argument of the ioctl cmd
+ *   arglen   The length of 'arg'
+ *
+ ****************************************************************************/
+
+int tcp_ioctl(FAR struct tcp_conn_s *conn,
+              int cmd, FAR void *arg, size_t arglen)
+{
+  int ret = OK;
+
+  switch (cmd)
+    {
+      case FIONREAD:
+        *(FAR int *)((uintptr_t)arg) =
+          iob_get_queue_size(&conn->readahead);

Review comment:
       I have some confuse here in #3948, why remove the wrapper of  the iob_queue, we have a lot of local optimization for TCP stack based on iob_queue




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] yamt commented on a change in pull request #3926: net/inet: add support of FIONREAD

Posted by GitBox <gi...@apache.org>.
yamt commented on a change in pull request #3926:
URL: https://github.com/apache/incubator-nuttx/pull/3926#discussion_r663632690



##########
File path: net/tcp/tcp_ioctl.c
##########
@@ -0,0 +1,74 @@
+/****************************************************************************
+ * net/tcp/tcp_ioctl.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <debug.h>
+#include <errno.h>
+
+#include <net/if.h>
+
+#include <nuttx/fs/ioctl.h>
+#include <nuttx/mm/iob.h>
+
+#include "tcp/tcp.h"
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: tcp_ioctl
+ *
+ * Description:
+ *   This function performs tcp specific ioctl() operations.
+ *
+ * Parameters:
+ *   conn     The TCP connection of interest
+ *   cmd      The ioctl command
+ *   arg      The argument of the ioctl cmd
+ *   arglen   The length of 'arg'
+ *
+ ****************************************************************************/
+
+int tcp_ioctl(FAR struct tcp_conn_s *conn,
+              int cmd, FAR void *arg, size_t arglen)
+{
+  int ret = OK;
+
+  switch (cmd)
+    {
+      case FIONREAD:
+        *(FAR int *)((uintptr_t)arg) =
+          iob_get_queue_size(&conn->readahead);

Review comment:
       this is incompatible with https://github.com/apache/incubator-nuttx/pull/3948
   
   you can do something like the following.
   ```
   if (conn->readahead != NULL)
     {
       v = conn->readahead->io_pktlen;
     }
   else
     {
       v = 0;
     }
   ```

##########
File path: net/tcp/tcp_ioctl.c
##########
@@ -0,0 +1,74 @@
+/****************************************************************************
+ * net/tcp/tcp_ioctl.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <debug.h>
+#include <errno.h>
+
+#include <net/if.h>
+
+#include <nuttx/fs/ioctl.h>
+#include <nuttx/mm/iob.h>
+
+#include "tcp/tcp.h"
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: tcp_ioctl
+ *
+ * Description:
+ *   This function performs tcp specific ioctl() operations.
+ *
+ * Parameters:
+ *   conn     The TCP connection of interest
+ *   cmd      The ioctl command
+ *   arg      The argument of the ioctl cmd
+ *   arglen   The length of 'arg'
+ *
+ ****************************************************************************/
+
+int tcp_ioctl(FAR struct tcp_conn_s *conn,
+              int cmd, FAR void *arg, size_t arglen)
+{
+  int ret = OK;
+

Review comment:
       is the caller holding net_lock?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] xiaoxiang781216 merged pull request #3926: net/inet: add support of FIONREAD

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 merged pull request #3926:
URL: https://github.com/apache/incubator-nuttx/pull/3926


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] yamt commented on a change in pull request #3926: net/inet: add support of FIONREAD

Posted by GitBox <gi...@apache.org>.
yamt commented on a change in pull request #3926:
URL: https://github.com/apache/incubator-nuttx/pull/3926#discussion_r663694940



##########
File path: net/tcp/tcp_ioctl.c
##########
@@ -0,0 +1,74 @@
+/****************************************************************************
+ * net/tcp/tcp_ioctl.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <debug.h>
+#include <errno.h>
+
+#include <net/if.h>
+
+#include <nuttx/fs/ioctl.h>
+#include <nuttx/mm/iob.h>
+
+#include "tcp/tcp.h"
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: tcp_ioctl
+ *
+ * Description:
+ *   This function performs tcp specific ioctl() operations.
+ *
+ * Parameters:
+ *   conn     The TCP connection of interest
+ *   cmd      The ioctl command
+ *   arg      The argument of the ioctl cmd
+ *   arglen   The length of 'arg'
+ *
+ ****************************************************************************/
+
+int tcp_ioctl(FAR struct tcp_conn_s *conn,
+              int cmd, FAR void *arg, size_t arglen)
+{
+  int ret = OK;
+
+  switch (cmd)
+    {
+      case FIONREAD:
+        *(FAR int *)((uintptr_t)arg) =
+          iob_get_queue_size(&conn->readahead);

Review comment:
       > Are you still doing network optimization recently? For which functions or options?
   
   i have no pending local changes in this area right now.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] anchao commented on a change in pull request #3926: net/inet: add support of FIONREAD

Posted by GitBox <gi...@apache.org>.
anchao commented on a change in pull request #3926:
URL: https://github.com/apache/incubator-nuttx/pull/3926#discussion_r663665793



##########
File path: net/tcp/tcp_ioctl.c
##########
@@ -0,0 +1,74 @@
+/****************************************************************************
+ * net/tcp/tcp_ioctl.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <debug.h>
+#include <errno.h>
+
+#include <net/if.h>
+
+#include <nuttx/fs/ioctl.h>
+#include <nuttx/mm/iob.h>
+
+#include "tcp/tcp.h"
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: tcp_ioctl
+ *
+ * Description:
+ *   This function performs tcp specific ioctl() operations.
+ *
+ * Parameters:
+ *   conn     The TCP connection of interest
+ *   cmd      The ioctl command
+ *   arg      The argument of the ioctl cmd
+ *   arglen   The length of 'arg'
+ *
+ ****************************************************************************/
+
+int tcp_ioctl(FAR struct tcp_conn_s *conn,
+              int cmd, FAR void *arg, size_t arglen)
+{
+  int ret = OK;
+
+  switch (cmd)
+    {
+      case FIONREAD:
+        *(FAR int *)((uintptr_t)arg) =
+          iob_get_queue_size(&conn->readahead);

Review comment:
       https://github.com/apache/incubator-nuttx/blob/75bfa4584c3d571fe751f4dc14bc4cb2b384f5d5/net/tcp/tcp_callback.c#L280-L291
   
   If the readahead is reserved for the next receive and the received data exceeds the remaining size of the current iob, will the part not copied be discarded?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] anchao commented on pull request #3926: net/inet: add support of FIONREAD

Posted by GitBox <gi...@apache.org>.
anchao commented on pull request #3926:
URL: https://github.com/apache/incubator-nuttx/pull/3926#issuecomment-873929357


   @yamt san, please review again,thank you


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org