vcl: support sockopt of SO_REUSEPORT and SO_DOMAIN
Type: fix Signed-off-by: wanghanlin <wanghanlin@corp.netease.com> Change-Id: I800cfffb07bf7d4c4d1454b73febdba03f7d6b75
This commit is contained in:
@@ -1952,9 +1952,15 @@ getsockopt (int fd, int level, int optname,
|
||||
case SO_REUSEADDR:
|
||||
rv = vls_attr (vlsh, VPPCOM_ATTR_GET_REUSEADDR, optval, optlen);
|
||||
break;
|
||||
case SO_REUSEPORT:
|
||||
rv = vls_attr (vlsh, VPPCOM_ATTR_GET_REUSEPORT, optval, optlen);
|
||||
break;
|
||||
case SO_BROADCAST:
|
||||
rv = vls_attr (vlsh, VPPCOM_ATTR_GET_BROADCAST, optval, optlen);
|
||||
break;
|
||||
case SO_DOMAIN:
|
||||
rv = vls_attr (vlsh, VPPCOM_ATTR_GET_DOMAIN, optval, optlen);
|
||||
break;
|
||||
case SO_ERROR:
|
||||
rv = vls_attr (vlsh, VPPCOM_ATTR_GET_ERROR, optval, optlen);
|
||||
break;
|
||||
@@ -2053,6 +2059,10 @@ setsockopt (int fd, int level, int optname,
|
||||
rv = vls_attr (vlsh, VPPCOM_ATTR_SET_REUSEADDR,
|
||||
(void *) optval, &optlen);
|
||||
break;
|
||||
case SO_REUSEPORT:
|
||||
rv = vls_attr (vlsh, VPPCOM_ATTR_SET_REUSEPORT, (void *) optval,
|
||||
&optlen);
|
||||
break;
|
||||
case SO_BROADCAST:
|
||||
rv = vls_attr (vlsh, VPPCOM_ATTR_SET_BROADCAST,
|
||||
(void *) optval, &optlen);
|
||||
|
||||
@@ -3636,6 +3636,21 @@ vppcom_session_attr (uint32_t session_handle, uint32_t op,
|
||||
*buflen = sizeof (u32);
|
||||
break;
|
||||
|
||||
case VPPCOM_ATTR_GET_DOMAIN:
|
||||
if (buffer && buflen && (*buflen >= sizeof (int)))
|
||||
{
|
||||
if (session->transport.is_ip4)
|
||||
*(int *) buffer = AF_INET;
|
||||
else
|
||||
*(int *) buffer = AF_INET6;
|
||||
*buflen = sizeof (int);
|
||||
}
|
||||
else
|
||||
rv = VPPCOM_EINVAL;
|
||||
VDBG (2, "VPPCOM_ATTR_GET_DOMAIN: %d, buflen %u", *(int *) buffer,
|
||||
*buflen);
|
||||
break;
|
||||
|
||||
default:
|
||||
rv = VPPCOM_EINVAL;
|
||||
break;
|
||||
|
||||
@@ -141,6 +141,7 @@ typedef enum
|
||||
VPPCOM_ATTR_SET_CKPAIR,
|
||||
VPPCOM_ATTR_SET_VRF,
|
||||
VPPCOM_ATTR_GET_VRF,
|
||||
VPPCOM_ATTR_GET_DOMAIN,
|
||||
} vppcom_attr_op_t;
|
||||
|
||||
typedef struct _vcl_poll
|
||||
|
||||
Reference in New Issue
Block a user