<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#C0C0C0">
    <p>Hi<br>
         I am sorry I forget to report my debug info on RHEL7.5Beta
      about this question.<br>
      I write a testcase on RHEL7.5Beta. the test case is below.<br>
      <br>
      #include <netinet/in.h><br>
      #include <sys/socket.h><br>
      #include <stdio.h><br>
      <br>
      int main (int argc, const char * argv[])<br>
      {<br>
          //create a dccp socket <br>
          int server_socket = socket(AF_INET6, SOCK_DCCP, IPPROTO_DCCP);<br>
          if (server_socket == -1) {<br>
              perror("socket error");<br>
              return 1;<br>
          }<br>
         printf("test is ok \n");<br>
      }<br>
      <br>
      And the  RHEL7.5Beta will report "Socket type not supported"  when
      run my testcase  on RHEL7.5Beta .<br>
      and the RHEL7.4GA will report "Permission denied " when run my
      testcase on RHEL7.4GA<br>
      it's ok when run my testcase on RHEL7.3GA.<br>
      <br>
      That's all.<br>
      <br>
      Thanks<br>
      Lianwen Sun<br>
      <br>
    </p>
    <div class="moz-cite-prefix">On 03/13/2018 11:01 PM, Petr Vorel
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20180313150111.16501-2-pvorel@suse.cz">
      <pre wrap="">*NOSUPPORT errnos likely mean there is configuration issue rather than
test failure.

e.g. missing dccp module in netstress.c which was so far set as TBROK:
safe_net.c:117: BROK: netstress.c:654: socket(10, 6, 33) failed: ESOCKTNOSUPPORT

Signed-off-by: Petr Vorel <a class="moz-txt-link-rfc2396E" href="mailto:pvorel@suse.cz"><pvorel@suse.cz></a>
Acked-by: Alexey Kodanev <a class="moz-txt-link-rfc2396E" href="mailto:alexey.kodanev@oracle.com"><alexey.kodanev@oracle.com></a>
---
 lib/safe_net.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/lib/safe_net.c b/lib/safe_net.c
index 9ea9d2b42..9ed52dcd1 100644
--- a/lib/safe_net.c
+++ b/lib/safe_net.c
@@ -107,12 +107,24 @@ int tst_getsockport(const char *file, const int lineno, int sockfd)
 int safe_socket(const char *file, const int lineno, void (cleanup_fn)(void),
                int domain, int type, int protocol)
 {
-       int rval;
+       int rval, ttype;
 
        rval = socket(domain, type, protocol);
 
        if (rval < 0) {
-               tst_brkm(TBROK | TERRNO, cleanup_fn,
+               switch (errno) {
+               case EPROTONOSUPPORT:
+               case ESOCKTNOSUPPORT:
+               case EOPNOTSUPP:
+               case EPFNOSUPPORT:
+               case EAFNOSUPPORT:
+                       ttype = TCONF;
+                       break;
+               default:
+                       ttype = TBROK;
+               }
+
+               tst_brkm(ttype | TERRNO, cleanup_fn,
                         "%s:%d: socket(%d, %d, %d) failed", file, lineno,
                         domain, type, protocol);
        }
</pre>
    </blockquote>
    <br>
  </body>
</html>