Commit 4820002d authored by Nilesh Javali's avatar Nilesh Javali Committed by James Bottomley

[SCSI] qla4xxx: Handle IPv6 AEN notifications

Signed-off-by: default avatarNilesh Javali <nilesh.javali@qlogic.com>
Signed-off-by: default avatarVikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: default avatarMike Christie <michaelc@cs.wisc.edu>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent a7e5688d
...@@ -506,9 +506,9 @@ struct qla_flt_region { ...@@ -506,9 +506,9 @@ struct qla_flt_region {
#define MBOX_ASTS_RESPONSE_QUEUE_FULL 0x8028 #define MBOX_ASTS_RESPONSE_QUEUE_FULL 0x8028
#define MBOX_ASTS_IP_ADDR_STATE_CHANGED 0x8029 #define MBOX_ASTS_IP_ADDR_STATE_CHANGED 0x8029
#define MBOX_ASTS_IPV6_DEFAULT_ROUTER_CHANGED 0x802A #define MBOX_ASTS_IPV6_DEFAULT_ROUTER_CHANGED 0x802A
#define MBOX_ASTS_IPV6_PREFIX_EXPIRED 0x802B #define MBOX_ASTS_IPV6_LINK_MTU_CHANGE 0x802B
#define MBOX_ASTS_IPV6_ND_PREFIX_IGNORED 0x802C #define MBOX_ASTS_IPV6_AUTO_PREFIX_IGNORED 0x802C
#define MBOX_ASTS_IPV6_LCL_PREFIX_IGNORED 0x802D #define MBOX_ASTS_IPV6_ND_LOCAL_PREFIX_IGNORED 0x802D
#define MBOX_ASTS_ICMPV6_ERROR_MSG_RCVD 0x802E #define MBOX_ASTS_ICMPV6_ERROR_MSG_RCVD 0x802E
#define MBOX_ASTS_INITIALIZATION_FAILED 0x8031 #define MBOX_ASTS_INITIALIZATION_FAILED 0x8031
#define MBOX_ASTS_SYSTEM_WARNING_EVENT 0x8036 #define MBOX_ASTS_SYSTEM_WARNING_EVENT 0x8036
......
...@@ -635,6 +635,18 @@ static void qla4xxx_update_ipaddr_state(struct scsi_qla_host *ha, ...@@ -635,6 +635,18 @@ static void qla4xxx_update_ipaddr_state(struct scsi_qla_host *ha,
} }
} }
static void qla4xxx_default_router_changed(struct scsi_qla_host *ha,
uint32_t *mbox_sts)
{
memcpy(&ha->ip_config.ipv6_default_router_addr.s6_addr32[0],
&mbox_sts[2], sizeof(uint32_t));
memcpy(&ha->ip_config.ipv6_default_router_addr.s6_addr32[1],
&mbox_sts[3], sizeof(uint32_t));
memcpy(&ha->ip_config.ipv6_default_router_addr.s6_addr32[2],
&mbox_sts[4], sizeof(uint32_t));
memcpy(&ha->ip_config.ipv6_default_router_addr.s6_addr32[3],
&mbox_sts[5], sizeof(uint32_t));
}
/** /**
* qla4xxx_isr_decode_mailbox - decodes mailbox status * qla4xxx_isr_decode_mailbox - decodes mailbox status
...@@ -802,6 +814,23 @@ static void qla4xxx_isr_decode_mailbox(struct scsi_qla_host * ha, ...@@ -802,6 +814,23 @@ static void qla4xxx_isr_decode_mailbox(struct scsi_qla_host * ha,
} }
break; break;
case MBOX_ASTS_IPV6_LINK_MTU_CHANGE:
case MBOX_ASTS_IPV6_AUTO_PREFIX_IGNORED:
case MBOX_ASTS_IPV6_ND_LOCAL_PREFIX_IGNORED:
/* No action */
DEBUG2(ql4_printk(KERN_INFO, ha, "scsi%ld: AEN %04x\n",
ha->host_no, mbox_status));
break;
case MBOX_ASTS_ICMPV6_ERROR_MSG_RCVD:
DEBUG2(ql4_printk(KERN_INFO, ha,
"scsi%ld: AEN %04x, IPv6 ERROR, "
"mbox_sts[1]=%08x, mbox_sts[2]=%08x, mbox_sts[3}=%08x, mbox_sts[4]=%08x mbox_sts[5]=%08x\n",
ha->host_no, mbox_sts[0], mbox_sts[1],
mbox_sts[2], mbox_sts[3], mbox_sts[4],
mbox_sts[5]));
break;
case MBOX_ASTS_MAC_ADDRESS_CHANGED: case MBOX_ASTS_MAC_ADDRESS_CHANGED:
case MBOX_ASTS_DNS: case MBOX_ASTS_DNS:
/* No action */ /* No action */
...@@ -939,6 +968,7 @@ static void qla4xxx_isr_decode_mailbox(struct scsi_qla_host * ha, ...@@ -939,6 +968,7 @@ static void qla4xxx_isr_decode_mailbox(struct scsi_qla_host * ha,
DEBUG2(ql4_printk(KERN_INFO, ha, DEBUG2(ql4_printk(KERN_INFO, ha,
"scsi%ld: AEN %04x Received IPv6 default router changed notification\n", "scsi%ld: AEN %04x Received IPv6 default router changed notification\n",
ha->host_no, mbox_sts[0])); ha->host_no, mbox_sts[0]));
qla4xxx_default_router_changed(ha, mbox_sts);
break; break;
case MBOX_ASTS_IDC_TIME_EXTEND_NOTIFICATION: case MBOX_ASTS_IDC_TIME_EXTEND_NOTIFICATION:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment