Print this page
4770 soconfig(1M) needs an option to print the in-kernel socket configuration table
*** 33,42 ****
--- 33,45 ----
*
* University Acknowledgment- Portions of this document are derived from
* software developed by the University of California, Berkeley, and its
* contributors.
*/
+ /*
+ * Copyright 2015 Nexenta Systems, Inc. All rights reserved.
+ */
#ifndef _SYS_SOCKETVAR_H
#define _SYS_SOCKETVAR_H
#include <sys/types.h>
*** 504,513 ****
--- 507,517 ----
extern void sockparams_destroy(struct sockparams *);
extern int sockparams_add(struct sockparams *);
extern int sockparams_delete(int, int, int);
extern int sockparams_new_filter(struct sof_entry *);
extern void sockparams_filter_cleanup(struct sof_entry *);
+ extern int sockparams_copyout_socktable(uintptr_t);
extern void smod_init(void);
extern void smod_add(smod_info_t *);
extern int smod_register(const smod_reg_t *);
extern int smod_unregister(const char *);
*** 973,982 ****
--- 977,987 ----
*/
#define SOCKCONFIG_ADD_SOCK 0
#define SOCKCONFIG_REMOVE_SOCK 1
#define SOCKCONFIG_ADD_FILTER 2
#define SOCKCONFIG_REMOVE_FILTER 3
+ #define SOCKCONFIG_GET_SOCKTABLE 4
/*
* Data structures for configuring socket filters.
*/
*** 1011,1020 ****
--- 1016,1043 ----
char *sfp_hintarg;
uint_t sfp_socktuple_cnt;
sof_socktuple_t *sfp_socktuple;
};
+ /*
+ * Data structures for the in-kernel socket configuration table.
+ */
+ typedef struct sockconfig_socktable_entry {
+ int se_family;
+ int se_type;
+ int se_protocol;
+ int se_refcnt;
+ int se_flags;
+ char se_modname[MODMAXNAMELEN];
+ char se_strdev[MAXPATHLEN];
+ } sockconfig_socktable_entry_t;
+
+ typedef struct sockconfig_socktable {
+ uint_t num_of_entries;
+ sockconfig_socktable_entry_t *st_entries;
+ } sockconfig_socktable_t;
+
#ifdef _SYSCALL32
typedef struct sof_socktuple32 {
int32_t sofst_family;
int32_t sofst_type;
*** 1028,1037 ****
--- 1051,1065 ----
caddr32_t sfp_hintarg;
uint32_t sfp_socktuple_cnt;
caddr32_t sfp_socktuple;
};
+ typedef struct sockconfig_socktable32 {
+ uint_t num_of_entries;
+ caddr32_t st_entries;
+ } sockconfig_socktable32_t;
+
#endif /* _SYSCALL32 */
#define SOCKMOD_PATH "socketmod" /* dir where sockmods are stored */
#ifdef __cplusplus