From d76a86507530dd3d3a63a73523b4f48bd656aed9 Mon Sep 17 00:00:00 2001 From: Roman Yeryomin Date: Wed, 6 Feb 2013 02:59:31 +0200 Subject: Rebase files to rsdk 3.2 and refresh patches. Compilable (not by humans). Signed-off-by: Roman Yeryomin --- .../files/include/net/rtl/features/fast_bridge.h | 81 ++++++++++++++++++++++ .../files/include/net/rtl/features/lan_restrict.h | 10 +++ .../files/include/net/rtl/features/rtl_ps_log.h | 44 ++++++++++++ 3 files changed, 135 insertions(+) create mode 100644 target/linux/realtek/files/include/net/rtl/features/fast_bridge.h create mode 100644 target/linux/realtek/files/include/net/rtl/features/lan_restrict.h create mode 100644 target/linux/realtek/files/include/net/rtl/features/rtl_ps_log.h (limited to 'target/linux/realtek/files/include/net/rtl/features') diff --git a/target/linux/realtek/files/include/net/rtl/features/fast_bridge.h b/target/linux/realtek/files/include/net/rtl/features/fast_bridge.h new file mode 100644 index 000000000..0586179c9 --- /dev/null +++ b/target/linux/realtek/files/include/net/rtl/features/fast_bridge.h @@ -0,0 +1,81 @@ +#if !defined(FAST_BRIDGE_H) +#define FAST_BRIDGE_H + +#define CONFIG_RTL_FASTBRIDGE 1 + +#define RTL_FB_ENTRY_NUM 16 +#define RTL_FB_HASH_SIZE 16 /* must be 2s order */ + +#if !defined(__KERNEL__) +struct hlist_node { + struct hlist_node *next, **pprev; +}; +struct hlist_head { + struct hlist_node *first; +}; +#endif + +typedef struct _rtl_fb_para +{ + uint32 enable_fb_filter:1; + uint32 enable_fb_fwd:1; + uint32 entry_num; +} rtl_fb_para; + +typedef struct _rtl_fb_head +{ + struct hlist_head in_used_list[RTL_FB_HASH_SIZE]; + struct hlist_head free_list; + uint32 used_cnt; +} rtl_fb_head; + +typedef struct _rtl_fb_entry +{ + /* hlist MUST be the first filed */ + struct hlist_node hlist; /* belongs to the same hash entry */ + void* dev_matchKey; + int32 (*ndo_start_xmit) (struct sk_buff *skb, + struct net_device *dev); + unsigned long last_used; + uint8 mac_addr[ETHER_ADDR_LEN]; +} rtl_fb_entry; + +int32 rtl_fb_process_in_nic(struct sk_buff *pskb, struct net_device *dev); +void rtl_fb_del_entry(const uint8 *mac); +void rtl_fb_flush(void); +void rtl_fb_flush_by_dev(void* key); +unsigned long rtl_fb_get_entry_lastused(const uint8 *mac); + +#define RTL_FB_RETURN_SUCCESS 0 +#define RTL_FB_RETURN_FAILED -1 + +/*****************************************************/ +/* netlink */ +#define FB_CMD_NO_CMD -1 +#define FB_CMD_SET_FWD 0 +#define FB_CMD_SET_FILTER 1 +#define FB_CMD_SET_ENTRY_NUM 2 +#define FB_CMD_GET_STATUS 3 +#define FB_CMD_GET_USED_NUM 4 +#define FB_CMD_DUMP_ENTRYS 5 + +typedef struct _rtl_fb_nl_entry { + uint8 name[IFNAMSIZ]; + uint8 mac_addr[ETHER_ADDR_LEN]; + unsigned long last_used; +} rtl_fb_nl_entry; + +typedef struct fb_data_info { + rtl_fb_para data; /* status/flags/counter/etc */ + rtl_fb_nl_entry *entry; /* for get entry list */ + uint32 in_used; /* inused count */ +} fb_data_info_s, *fb_data_info_p; + +typedef struct fb_cmd_info { + int action; /* set/get items */ + fb_data_info_s info; +}fb_cmd_info_s, *fb_cmd_info_p; + +/*****************************************************/ + +#endif diff --git a/target/linux/realtek/files/include/net/rtl/features/lan_restrict.h b/target/linux/realtek/files/include/net/rtl/features/lan_restrict.h new file mode 100644 index 000000000..0ad313b47 --- /dev/null +++ b/target/linux/realtek/files/include/net/rtl/features/lan_restrict.h @@ -0,0 +1,10 @@ +//#include +#include +#include +#include +#include + +int32 lan_restrict_getBlockAddr(int32 port , const unsigned char *swap_addr); +extern int __init lan_restrict_init(void); +extern int lan_restrict_rcv(struct sk_buff *skb, struct net_device *dev); +extern int32 lan_restrict_CheckStatusByport(int32 port); diff --git a/target/linux/realtek/files/include/net/rtl/features/rtl_ps_log.h b/target/linux/realtek/files/include/net/rtl/features/rtl_ps_log.h new file mode 100644 index 000000000..3c306722a --- /dev/null +++ b/target/linux/realtek/files/include/net/rtl/features/rtl_ps_log.h @@ -0,0 +1,44 @@ +#ifndef RTL_PS_LOG_H +#define RTL_PS_LOG_H + +#if defined(CONFIG_RTL_LOG_DEBUG) + + #if defined(LOG_ERROR) + #undef LOG_ERROR + #define LOG_ERROR(fmt, args...) do{ \ + if(RTL_LogTypeMask.ERROR&&RTL_LogModuleMask.PROSTACK&&LOG_LIMIT)scrlog_printk("PS-ERROR:"fmt, ## args); \ + }while(0) + #endif + + #if defined(LOG_MEM_ERROR) + #undef LOG_MEM_ERROR + #define LOG_MEM_ERROR(fmt, args...) do{ \ + if(RTL_LogTypeMask.ERROR&&RTL_LogErrorMask.MEM&&RTL_LogModuleMask.PROSTACK&&LOG_LIMIT)scrlog_printk("PS-MEM-ERROR:"fmt, ## args); \ + }while(0) + #endif + + #if defined(LOG_SKB_ERROR) + #undef LOG_SKB_ERROR + #define LOG_SKB_ERROR(fmt, args...) do{ \ + if(RTL_LogTypeMask.ERROR&&RTL_LogErrorMask.SKB&&RTL_LogModuleMask.PROSTACK&&LOG_LIMIT)scrlog_printk("PS-SKB-ERROR:"fmt, ## args); \ + }while(0) + #endif + + #if defined(LOG_WARN) + #undef LOG_WARN + #define LOG_WARN(fmt, args...) do{ \ + if(RTL_LogTypeMask.WARN&&RTL_LogModuleMask.PROSTACK&&LOG_LIMIT)scrlog_printk("PS-WARN:"fmt, ## args); \ + }while(0) + #endif + + #if defined(LOG_INFO) + #undef LOG_INFO + #define LOG_INFO(fmt, args...) do{ \ + if(RTL_LogTypeMask.INFO&&RTL_LogModuleMask.PROSTACK&&LOG_LIMIT)scrlog_printk("PS-INFO:"fmt, ## args); \ + }while(0) + #endif + +#endif + +#endif + -- cgit v1.2.3