GitHub PushEvent at 2014-07-15 17:30:51
Repository: freebsd
Actor: dannomac
Payload: {"shas":[["a64cd56a0c4811ba51098860f900a27da548caaf","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r267639:\nIncrease CTL_DEVID_LEN from 16 to 64 bytes.\n\nSPC-4 recommends T10 vendor ID based LUN ID was created by concatenating\nproduct name and serial number (and istgt follows that).  But product name\nis 16 bytes long by itself, so 16 bytes total length is clearly not enough\nto fit both.\n\nTo keep compatibility with existing configurations, pad short device IDs\nto old length of 16, same as before.\n\nThis change probably breaks CTL user-level ABI, so control tools should\nbe rebuilt after this change.","mav",true],["da977d403200a33558605a0f258a3e6077c11715","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268096, r268306, r268361:\nAdd more formal and strict command parsing and validation.\n\nFor every supported command define CDB length and mask of bits that are\nallowed to be set.  This allows to remove bunch of checks through the code\nand still make the validation more strict.  To properly do it for commands\nsupporting multiple service actions, formalize their parsing by adding\nsubtables for each of such commands.\n\nAs visible effect, this change allows to add support for REPORT SUPPORTED\nOPERATION CODES command, reporting to client all the data about supported\nSCSI commands, except timeouts.","mav",true],["75f2a987710660a3c2af6958891e45f24decd6db","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268103:\nAdd support for REPORT TIMESTAMP command.","mav",true],["e396aeead5cfe9d2373b9dd6834336a84a5f1077","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268265:\nRemove targ_enable()/targ_disable() frontend methods.\n\nThose methods were never implemented, and I believe that their concept is\nwrong, since single frontend (SCSI port) can not handle several targets.","mav",true],["8bfe00fd8a11cebc27d1ef3170017a05b7df5b76","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268266, r268275:\nSeparate concepts of frontend and port.\n\nBefore iSCSI implementation CTL had no knowledge about frontend drivers,\nit had only frontends, which really were ports (alike to LUNs, if comparing\nto backends).  But iSCSI added there ioctl() method, which does not belong\nto frontend as a port, but belongs to a frontend driver.","mav",true],["639ef1613c892d0a821b25816853edb66bf2ac8d","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268280:\nMake options KPI more generic to allow it to be used for ports too,\nnot only for LUNs.","mav",true],["7da5c8a0d63c1123eaaef5b9ebab7e35430f88da","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268284:\nIntroduce new IOCTL CTL_PORT_LIST reporting in more flexible XML format.\n\nLeave old CTL_GET_PORT_LIST in place so far.  Garbage-collect it later.","mav",true],["c09a8b3510b750ba8d8cd232e37ae1f5063b5c3a","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268287:\nImplement and use ctl_frontend_find().","mav",true],["5df1093df8b7eccb4b223002262ad786b0df65ce","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268288:\nImprove CTL_BEARG_* flags support, including optional values copyout.","mav",true],["b40b547aa1da9759435fa451a9927dadeeef00d2","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268291:\nCreate separate CTL port for every iSCSI target (and maybe portal group).\n\nHaving single port for all iSCSI connections makes problematic implementing\nsome more advanced SCSI functionality in CTL, that require proper ports\nenumeration and identification.\n\nThis change extends CTL iSCSI API, making ctld daemon to control list of\niSCSI ports in CTL.  When new target is defined in config fine, ctld will\ncreate respective port in CTL.  When target is removed -- port will be\nalso removed after all active commands through that port properly aborted.\nThis change require ctld to be rebuilt to match the kernel.\n\nAs a minor side effect, this allows to have iSCSI targets without LUNs.\nWhile that may look odd and not very useful, that is not incorrect.","mav",true],["f1200cac157574450e2e32e4098cb478bc3e04db","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268293:\nBurry devid port method, which was a gross hack.\n\nInstead make ports provide wanted port and target IDs, and LUNs provide\nwanted LUN IDs.  After that core Device ID VPD code only had to link all\nof them together and add relative port and port group numbers.\n\nLUN ID for iSCSI LUNs no longer created by CTL, but by ctld, and passed\nto CTL as \"scsiname\" LUN option.  This makes LUNs to report the same set\nof IDs, independently from the port through which it is accessed, as\nrequired by SCSI specifications.","mav",true],["0468376762ffd7c8bbae1163c059f5c3ec8de0a3","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268302:\nPass through iSCSI session ISID from LOGIN request to the CTL frontend.\n\nISID is an important part of initiator transport ID for iSCSI.  It is not\nused now, but should be to properly implement persistent reservation.","mav",true],["6cb3a6ad506ce21e08e6283ccd2071c799c141c0","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268307:\nMove lun_map() method from command nexus to port.\n\nPrevious implementation made impossible to do some things, such as calling\nit for ports other then one through which command arrived.","mav",true],["938fb0a5f5df003d59657cfaeb5a0e0db74e9a58","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268308:\nMake REPORT TARGET PORT GROUPS command report realistic data instead of\nhardcoded garbage.","mav",true],["247c4d205304f59552dd4f5ed2727409e52c64df","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268309:\nAdd support for SCSI Ports (88h) VPD page.","mav",true],["100d0f0aa6e25177e25a030a8ecb3c3154c95549","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268328:\nClose race in r268291 between port destruction, delayed by sessions\nteardown, and new port creation during `service ctld restart`.\n\nClose it by returning iSCSI port internal state, that allows to identify\ndying ports, which should not be counted as existing, from really alive.","mav",true],["ebf361d5292545a3a49a175874ca935db3d618ac","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268330:\nMake gcc happy, init idlen2.","mav",true],["a0bee6cdf512268cfaa403e632fddba436b254b2","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268353:\nImplement ABORT TASK SET and I_T NEXUS RESET task management functions.\n\nUse the last one to terminate active commands on iSCSI session termination.\nPrevious code was aborting only commands doing some data moves.","mav",true],["14a59860bba56b34a1bc7d91e005928b115d79d4","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268356, r268357:\nWhen new connection comes in, check whether we already have session from\nthe same intiator (Name+ISID).  If so -- terminate the old session and let\nthe new one take its place, as required by iSCSI RFC.","mav",true],["342f128143fdb4f83cc3f978de3ddc08ec4c2cea","84b503db6d985a7240515b02455e8dc027cb5b7d@FreeBSD.org","MFC r268362:\nTeach ctl_add_initiator() to dynamically allocate IIDs from pool.\n\nIf port passed negative IID value, the function will try to allocate IID\nfrom the pool of unused, based on passed wwpn or name arguments.  It does\nall its best to make IID unique and persistent across reconnects.\n\nThis makes persistent reservation properly work for iSCSI.  Previously,\nin case of reconnects, reservation could be unexpectedly lost, or even\nmigrate between intiators.","mav",true]],"size":26,"ref":"refs/heads/stable/10","head":"c0be426ce60674cc235ac3efb29fd8351ba70fe2"}